PukiWiki/ajaxtreeの文字化け
クラブスキンの「バージョン0.3 EUC-JP」を文字コードEUC-JP環境下で利用した場合、ajaxtreeが文字化けする。
これは、同バージョンの「/html/ajaxtree」の中の「.htaccess」ファイルの中身が「AddCharset UTF-8 .html」になっているためで、ここを「AddCharset EUC-JP .html」に変更すると直る。(Apache 1.13.10以降の場合)
使っているWEBサーバのバージョンごとに対応が少しづつ異なるようなので、以下に記載する。
(いずれも「UTF-8」の設定がされていたら、あらかじめそれを削除した上で設定する。
Apache 1.13.10以降の場合、.htaccessに以下の行を追加。(2.x系も同様と思われる。)
AddCharset EUC-JP .html
Apache 1.13.9以前の場合、.htaccessに以下の行を追加。
AddType "text/html; charset=EUC-JP" .html
lighttpd の場合、lighttpd.conf に以下のような設定を付け加える。(URL部分は環境に応じて変更する。)
$HTTP["url"] =~ "^/var/www/html/ajaxtree/" { mimetype.assign = ( ".html" => "text/html; charset=EUC-JP" ) }
ajaxtreeは以下の原理で動いている。
(やりとりするのが XML でなく HTML なので、正確には Ajax でなく AHAHらしい。)
- Web サーバのあるディレクトリに EUC-JP で書かれた HTML ファイルを置いておく。
- 表示中のページ (文字コード EUC-JP) の特定の箇所にそれを Ajax で読み込む。
ところがそのままだと、途中で文字コードが UTF-8 に変換されてしまうらしく文字化けしてしまう。
そこで、上記のような方法で、charset を EUC-JP に指定してやると、文字化けが回避できる。
クラブスキン同梱版以外のajaxtreeにも有効な方法。
このページのURL: