AjaxでShift_JISのファイルを取得する

June 7, 2010,
tags: ajax javascript jquery


このエントリーをはてなブックマークに追加

Ajaxで、Shift_JISのテキストファイルを受け取って出力しようとしたらやっぱ文字化けた。。
取得するためのHTMLもShift_JISだし、いけるかなーとか甘い考えしてたら見事にだめでした。

原因としてはレスポンスヘッダに文字コードが含まれていないのでAjax的にはどうやらUTF-8だと認識していたようです。
てか、最初リクエストヘッダに文字コード指定してないからだと勘違いして、ActionScriptからテキストデータ取りに行く際にContent-typeで文字コード指定して、受け取ってJavaScriptに渡すみたいな処理も作ってしまった・・・。

一応JQueryだとbeforeSendでMimeTypeを書き換えるって裏技があったけど、これだとIEでは動かない・・・。

$.ajax({
		beforeSend: function(xhr) {
			//xhr.overrideMimeType("text/plan;charset=Shift_JIS");
		}
})

てか、レスポンスヘッダで文字コード指定されてないってことは、Aapche側で、AddDefaultCharsetを指定しておけばいいんじゃね?
ってことになって、結局AddDefaultCharsetをShift_JISにすることで解決できました。
ただ、これはサーバ設定に依存する部分なのであまり使いたくないです。

早くWEBはUTF-8のみ使用するという法律を定めてほしいものです。

comments powered by Disqus