[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:40435] Re: apacheでhtmlが文字化け



飛田です。

>>>>> In [debian-users : No.40424] 
>>>>>	"T.Kikuchi" <kikuchic@xxxxxxxxxxxxxxxxx> wrote:

> woodyで、apache1.3.26を使用しています。この、Shift-JISで書いたhtmlファ
> イルをブラウザ(IE)で開くと、文字化けしてしまいます。

> 当方がこれまで行ったのは、下記のような事です。
> ・<html lang="ja">と、<META・・・;charset=Shift_JIS">を入れた。

;; これは Apache は気にしてないかも..

> ・/etc/apache/httpd.conf の下記の箇所を書き換え、apacheをrestartした。

多分、/etc/init.d/apache reload でも良いと思います。

> 	・AddDefaultCharset on を AddDefaultCharset Off に

もし、サーバのデフォルトを設定するなら AddDefaultCharset shift_jis と
かもありです。色々なユーザに利用させる、さらに文字コードが混在するなら
面倒なので Off もしくは無効(デフォルトで Off) で良いかも知れません。

> 	・<IfModule mod_negotiation.c>LanguagePriority ja en ・・・・・
>         </IfModule> とした

;; 手元の woody の apache は potato から上げたマシンなので、状況違うか
;; もしれませんが、これ、woody の版だと、httpd.conf の頭で 
;; mod_negotiation.so をロードして、LanguagePriority は srm.conf の方
;; に既に書いてあったりしませんか? 

;; もしそうなら、次のも srm.conf に書いた方が見通しが良いと思います。

> 	・AddLanguage ja .ja
> 	 AddCharset EUC-JP .euc  の後に
> 	 AddCharset ISO-2022-JP .jis   <-- 付加
> 	 AddCharset SHIFT_JIS .sjis   <-- 付加

これで拡張子をみて mod_negotiation が判断するようになる筈ですので、ファ
イルの拡張子を test.html.sjis とか test.html.jis とかにするとうまく動
作すると思います。また、最後の拡張子部分は複数書けるようですので、

 AddCharset Shift_JIS .sjis .ja

の様にしてもいけます。

で、access.conf の該当するディレクティブの Options に MultiViews を追
加して index.html.ja と index.html.en

;; あるいは index.ja.html や index.en.html でも行けるようです。

を置いてアクセスしてテストしてみて下さい。

;; 例えばドキュメントルートに test.html.ja , test.html.sjis
;; test.sjis.html などを用意してから http://www.example.org/test とか
;; でアクセスすると、何が起こるか見てみて下さい。また、test.html.en と
;; test.ja.html の二つがある場合の動作なども確認してみると面白いでしょ
;; う。

;; 混ぜこぜに色々置いてみて消していってみると、
;; .html.ja -> .html.jis -> .html.euc -> .ja.html -> .html.sjis
;; の様な順番で読むみたいですね。

-- 
  Shinichiro HIDA  mailto:shinichiro@xxxxxxxxxxxxx
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9