[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:33024] [FAQ] /usr/share/doc/ の日本語 html 文書と apache (>=1.3.12)
- From: INOUE Hiroyuki <dombly@xxxxxxxxxxxxxxxx>
- Subject: [debian-users:33024] [FAQ] /usr/share/doc/ の日本語 html 文書と apache (>=1.3.12)
- Date: Mon, 20 May 2002 11:39:23 +0900
- X-ml-info: If you have a question, send e-mail with the body "help" (without quotes) to the address debian-users-ctl@debian.or.jp; help=<mailto:debian-users-ctl@debian.or.jp?body=help>
- X-ml-name: debian-users
- X-mlserver: fml [fml 3.0pl#17]; post only (only members can post)
- X-pgp-fingerprint: CAF3 05AB B2C6 0869 2876 1F68 3C49 F871 BC66 3D8D
- X-pgp-publickey: http://www10.u-page.so-net.ne.jp/kc4/dombly/INOUE_Hiroyuki.pubkey.asc
- Message-id: <20020520.113800.80966025.dombly@xxxxxxxxxxxxxxxx>
- X-mail-count: 33024
- X-mailer: Mew version 2.2 on Emacs 21.2 / Mule 5.0 (SAKAKI)
ハマったあげく解決してみたら FAQ だったのですが,アーカイヴに
ある情報だけではやっぱり解決できなかった (あるいはミスリード
された?) であろうと感じました。
そこで,正しそうな対処法を纏めてみました。
[Q] /usr/share/doc/path_to_doc/ 以下に apache 経由で
http://localhost/doc/path_to_doc/ のようにしてアクセスすると,
日本語の文書が文字化けします。
[A] httpd.conf に以下の記述を追加してください:
<Location /doc/path_to_doc/>
AddDefaultCharset off
</Location>
目的の文書の文字コードが分かっている場合はそれに合わせて
記述する方が良いでしょう (下記参照)。
いわゆる JIS コードの場合:
<Location /doc/path_to_doc/>
AddDefaultCharset ISO-2022-JP
</Location>
EUC-JP の場合:
<Location /doc/path_to_doc/>
AddDefaultCharset EUC-JP
</Location>
shift JIS の場合:
<Location /doc/path_to_doc/>
AddDefaultCharset Shift_JIS
</Location>
[補足]
* セキュリティ上の理由から,apache (>= 1.3.12) のデフォルトでは
httpd.conf の中で AddDefaultCharset on と設定されています。
このため apache は META タグを無視して Content-Type ヘッダに
誤った文字コード charset=iso-8859-1 を送出してしまいます。
* といって,AddDefaultCharset を切ってしまう (出現行をコメント
アウトするとか off にするとか) のは **危険** です。
Cf. http://httpd.apache.org/info/css-security/
* .htaccess を使っての設定も可能なはず。ただし,やはり httpd.conf
の修正が必要になります。
* httpd.conf を改変しない方針:
# find /usr/share/doc/path_to_doc/ \
-name '*.html' \
-exec mv \{\} \{\}.ja.jis \;
ただし,ISO-2022-JP 以外のコードの文書は依然として文字化けします。
* JIS 以外のコードの場合,デフォルトの httpd.conf に全く手を
加えずにすむ方法というのはなさそうでした。ただし,httpd.conf
に例えば
AddCharset EUC-JP .euc
のような記述を加えておけば,該当ファイルを:
% find /usr/share/doc/path_to_doc/ \! -type d \
-name '*.html' -exec grep charset=euc-jp \{\} \; \
-print
と探して .ja.euc を付けることで対応可能です。
# これは,パッケージレベルで対応すべきことがらのように思えます;
# 詳しくは debian-devel に投げます。
--
井上 博之 / INOUE Hiroyuki
E-Mail: dombly@xxxxxxxxxxxxxxxx
PGP Fingerprint: CAF3 05AB B2C6 0869 2876 1F68 3C49 F871 BC66 3D8D
...................................................................
:Juiliett Class Submarine CBNRC MDA MIT-LL Kennedy S Box lock
:picking JPL infowar csim Lexis-Nexis North Korea Baranyi CDMA
:cryptanalysis
:(Cf. http://www.gnu.org/manual/emacs/html_chapter/emacs_29.html#SEC372)