Kawanet Blog II

アクセスカウンタ

zoom RSS [ajax] Safari の responseText で UTF-8 コード文字化け回避

<<   作成日時 : 2005/11/15 13:36   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 53 / トラックバック 13 / コメント 16

Safari の responseText では、Shift_JIS はおろか UTF-8 コードでも文字化けするため使いにくかったが、UTF-8 コードに対応する手順を考えた。

function get_response_text ( req ) {
var text = req.responseText;
if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
var esc = escape( text );
if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
text = decodeURIComponent( esc );
}
}
return text;
}
※2005/12/13 関数化した

実際のテキストファイルがUTF-8コードだったとしても、Safari 2.0のresponseTextはISO-8859-1コードか何かと誤認識したような文字列を返してくるので文字化けしてしまう。
そこで、ブラウザを判別して Safari ではいったんescapeで%HH形式に変換する。
このとき『UTF-8コードのエスケープ状態』と同じ文字列並びになっているから、これをさらにdecodeURIComponentで展開すればUTF-8コードの文字列として取り出すことができる!

※ブラウザ依存関数のescapeを逆手にとって使ってみました。

もっとも、さすがに Safari も今後のバージョンアップによってはちゃんと文字コードを認識するようになるだろうから、その時点では上記ルーチンで逆に文字化けが発生してしまうので、そのときにはバージョン番号で範囲特定などが必要になるけど、当面の間は、上記のif文を入れるだけでSafariでもUTF-8コードのテキストファイルを扱えるようになる!(⇒今後も副作用ないように書き換えました)

[参考]
http://jsgt.org/mt/archives/01/000287.html

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 53
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
驚いた 驚いた 驚いた 驚いた 驚いた 驚いた 驚いた 驚いた 驚いた
面白い 面白い 面白い 面白い 面白い 面白い 面白い
ガッツ(がんばれ!) ガッツ(がんばれ!) ガッツ(がんばれ!) ガッツ(がんばれ!) ガッツ(がんばれ!) ガッツ(がんばれ!) ガッツ(がんばれ!)
かわいい かわいい かわいい かわいい かわいい かわいい
ナイス ナイス ナイス ナイス ナイス

トラックバック(13件)

タイトル (本文) ブログ名/日時
MovableType のサイト内検索を Ajax 化
 だいたいの MovableType を使った Blog に設置されて... ...続きを見る
AUSGANG SOFT
2005/12/26 09:52
Ajaxメモ2 - 文字コードについて
三位一体のからくりで、リッチな Web アプリを実現する Ajax。 HTML と JavaScript とサーバサイドスクリプトの文字コードの組み合わせはいかがなもんじゃろう? ということで、調査メ... ...続きを見る
お気楽極楽ブログ
2006/02/11 17:11
MTでAjax!!〜XMLHttpRequestでMTの各エントリーにメニューを読み込ませる〜
Road to me..では各エントリー、カテゴリー、マンスリーアーカイブにトップページと同じメニューを付けています。しかしながら過去のアーカイブは「すべて再構築」を実行するまでは「Recent Entries」などが古いままになっていまし... ...続きを見る
Road to me ...
2006/05/22 14:49
MTでAjax!!〜XMLHttpRequestでMTの各エントリーにメニューを読み込ませる〜
Road to me..では各エントリー、カテゴリー、マンスリーアーカイブにトップページと同じメニューを付けています。しかしながら過去のアーカイブは「すべて再構築」を実行するまでは「Recent Entries」などが古いままになっていまし... ...続きを見る
Road to me ...
2006/05/22 14:55
SafariのresponseText
Ajaxリクエストで返ってきたJSON文字列に日本語が含まれる場合にSafariが無限ループに陥る。 英語のみの場合は問題ないので、Contetnt-Typeが問題かと疑う。 サーバーサイドのプログラムで文字列エンコーディングがUTF-8であること、ヘッダーがきちんと設定されていることを ...続きを見る
そぶログ
2006/06/21 03:05
Safari1.2でresponseTextが文字化けする
responseTextだとsafari1.2で文字化けするので対処法を探していたところ [ajax] Safari の responseText で UTF-8 コード文字化け回避という非常に面白い記事を見つけました。ほかのブログではresponseXMLでないと文字化けするとの見解がほとんどでしたので、これは試す価.. ...続きを見る
開発中に色々あったことの備忘録
2006/07/03 01:53
ユーザー補助機能付リアルタイム郵便番号変換
巨大なデータを扱う機会が多くなってきたので、 データベースを導入することにしました。 ...続きを見る
ac-antenna
2006/10/27 23:37
DamMapsバージョンアップしました
DamMaps version1.0.2 http://www.dammaps.jp/ 今回のバージョンアップは…。 Safari文字化け対応 &#91;ajax&#93; Safari の responseText で UTF-8 コード文字化け回避 Kawa.netブログ(川崎有亮)/ウェブリブログを利用させていただきました。ありがとうございます。助か ...続きを見る
速報ダム日和
2007/01/18 23:25
Safariの文字化け問題
WordPressのアクセス解析プラグインである、Wp-SlimStat-Exというものを使っているのだが、どうしても肝心の部分がSafariで文字化けしてしまう。 Googleパーソナライズも同様の理由で、AJAXを使... ...続きを見る
My wonderful living
2007/06/27 21:25
Safariでdojoを使うと文字化けする件
こみゅすけは,dojoというライブラリをかなりの勢いで使用している。dojoは数... ...続きを見る
天使やカイザーと呼ばれて
2007/08/24 11:42
メモ:Safari の responseText で UTF-8 コード文字化け回避
Safari の responseText で UTF-8 コード文字化け回避 ...続きを見る
LOCK,STOCK
2007/12/24 16:47
Ajax?????????????????
?????^^ ??????????? Safari 3 ?????????????????????? ????????????? (?&???) Firefo... ...続きを見る
Movable Type ???
2008/02/22 21:04
[Mac Safari3.0.4]Thickboxの文字化け
お客さんから指摘がありました ...続きを見る
牢獄に暮らす奴隷
2009/04/30 21:24

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(16件)

内 容 ニックネーム/日時
文字化けが解消しました。
どうもありがとうございます!
大変感謝
2006/01/23 01:44
丁度プレーンテキストを扱った動的読込みでsafariの文字化けに悩まされていました。
有益な情報公開に感謝いたします。
ありがとうございました。
non
2006/06/29 17:20
同じ問題で悩んでいたので、助かりました。
prototype.js を改変して使ってみたところ、快適に動作してます。
ありがとうございます。
Psychs
2006/08/04 20:06
感動。助かりました。
cval
2007/03/04 19:59
SafariのUTF-8誤解釈に悩まされていました。
SafariのVerUPを期待していたため後回しにしていたのですが、
対応する様子がなかったため非常に参考になりました。
ありがとう御座います。
thomas
2007/06/27 21:42
最新版で文字化けが復活した模様です。
現在調査中です。
negi
2007/12/15 17:18
Safari3では、元のテキストのBOM有無で文字コード判定しているようですね。「BOMありならUTF-8」「BOM無しならISO-8859-1」というような挙動のようです。「BOMありUTF-8」のテキストなら、escape,decodeしないでもUTF-8として扱ってくれました。
anon
2008/02/17 20:44
Safari 3ではXMLHttpRequestで送信するファイルの拡張子でも、文字化けするしないが変わるようです。
Intel Mac版で確認した限りではhtml,htmはダメでtxt,xml,xhtmlはOK。極端な話拡張子なしでも化けませんでした。
加えて、escape()関数が吐き出すコードに"%u"が混じるようになったため、encodeURIComponentしたUTF-8と等価にならず、またif文にもひっかからず、変数textは不変のままです。
hyou
2008/02/29 22:11
文字化けに悩んでいたので助かりました。ありがとうございます!
ありがとうございました!
2008/03/28 00:02
Портал секс-знакомств <a href=http://sexvk.com/?t=9521><b>знакомства секс</b></a> сделан для того, чтобы заинтересованные люди имели возможность предложить друг другу интим безвозмездно. Всё начинается и заканчивается как обыкновенный виртуальный флирт, который никого ни к чему не обязывает. Но очень часто, рассмотрев портал <a href=http://sexydateplanet.com/?t=9521><b>знакомства в абакане без регистрации</b></a> знакомств для интима, люди встречаются и приятно общаются друг с другом.

<a href=http://sexvk.com/?t=9521><img>http://i.pixs.ru:/storage/1/8/9/SRSRRRRRRR_5689199_9115189.jpg</img></a>

Добро пожаловать на <a href=http://fasefuckbook.org/?t=9521><b>самый популярный сайт секс знакомств</b></a>
orockbfStarr
2013/10/06 05:35
Тайные встречи без обязательств ждут вас! … В клубе: секс чат, интим объявления, контакты и фото партнеров, поиск встреч и вечеринок и многое другое
Сайт интим-знакомств <a href="http://virtlove.info/index.php/seks-srazu">Секс Сразу</a>-для тех кто не любит ждать. Все прекрасно понимают что в наш век некогда ждать- уделять время флирту, ухаживаниям, походам в кино и по ресторанам.
Интим-доска <a href="http://giodi.ru/index.php?topic=168.0">быстрые и бесплатные интим знакомства для секса</a>, любви и дружбы! … Ищу зрелую любовницу для разовых или частых встреч.
Знакомства для Встреч <a href="http://www.meendo.net/all/?partner=4005">Meendo</a> Ищу Любовника. … знакомства для встреч, знакомства для интимных встреч, знакомства для реальных встреч.
bobovbob
2014/03/28 22:59
Whitman'sv3Xwellh9Ya3Ey6Q<a href=http://www.quinnshotel.com/OLD/pro/006.html>バッグ 財布</a>
works6Aandj1Ga1Hz2Z
sleepingh0Nofficescoacho9Ct0Sx8G<a href=http://www.quinnshotel.com/OLD/pro/006.html>バッグ 財布</a>
<a href=http://www.frankandeunice.com/pics/_notes/002.html>グッチ 財布</a>
butv5Jthem7At0Vf1P
justd4Gaskd4Lk7Ri9G<a href=http://www.quinnshotel.com/OLD/pro/006.html>Louis Vuitton カバン</a>
isu5Xreservedt8Nh8Ij8Q
processq9Sshoesg0Lq0Pk1Y<a href=http://www.quinnshotel.com/OLD/pro/006.html>ヴィトン 財布</a>
ofd7Cbutp7Uo3Qx5Z<a href=http://www.frankandeunice.com/pics/_notes/002.html>海外ファッションブランド</a>
<a href=http://www.quinnshotel.com/OLD/pro/006.html>Louis Vuitton カバン</a>

http://www.frankandeunice.com/pics/_notes/002.html
WilliamLat
2014/04/20 17:01
<a href=http://www.tomkit.net/>腕時計 販売</a>
<a href=http://www.sunlanka.com/>高級腕時計</a>
<a href=http://www.skullfans.com/>靴 ブランド アウトレット</a>
<a href=http://www.azterramar.com/>イルビゾンテ バッグ アウトレット</a>
<a href=http://www.bruninho.net/>ティンバーランド</a>
unless it is a classic design.Penn State was supposed to be the program shunned by the nationcoach recommended books They don't have to be opened and you can add colors !
<a href=http://www.tasteofbelmont.com/>http://www.tasteofbelmont.com/</a>
<a href=http://www.skullfans.com/>http://www.skullfans.com/</a>
<a href=http://www.azbridlewood.com/>http://www.azbridlewood.com/</a>
<a href=http://www.bruninho.net/>http://www.bruninho.net/</a>
Santoset
2014/05/23 15:57
Vivian Westwood http://www.davidpirell.com/sounds/christian-louboutin-81.html ハミルトン 軍用時計 http://www.disfrazarte.org/regalos/outlethamilton190.html ig7f http://www.shebatourism.com/shebahotels/christian-louboutin-92.html ハミルトン 店舗 http://www.amazingcare.info/AC/new/vivienne-outlet-71.html vj4 http://www.disfrazarte.org/regalos/outlethamilton170.html ハミルトン カーキ http://www.shebatourism.com/shebahotels/christian-louboutin-64.html b6zd6j6pq1 http://www.trinsmeq.org/joomla/libraries/hamiltones17.html ハミルトン レディ http://www.cieepi.org/pommo/hamiltonwatch129.html ハミルトン ジャズマスター http://www.cieepi.org/pommo/hamiltonwatch29.html viw http://www.shebatourism.com/shebahotels/christian-louboutin-1.html liy http://www.cieepi.org/pommo/hamiltonwatch140.html 86e
Anthonydus
2014/07/15 20:08
http://www.ambumedica.se/mc/casio-78.html v1u7wr http://wistha.se/picture/gaga-outlet117.html カシオ ランニングウォッチ http://www.gamsatermedia.se/bilder/louisvuitton-outlet-15.html カシオ gショック http://www.businessinheart.com/utils/LV-177.html g4p http://www.blandaren.se/bilder/casio-157.html ルイヴィトン キャリーケース http://vrdeli.se/bilder/channel171.html sf3y http://www.finstadgrav.se/bilder/louisvuitton-95.html シャネル ファインジュエリー http://www.berglundsserveringar.se/bilder/casio-173.html hqj http://www.barnensdagovik.se/logs/casio-158.html カシオ デジタル http://www.halan.se/volvo/vuitton-handbag-156.html dvc http://www.alphramedic.se/gre/casio-138.html カシオ オシアナス 評価 http://vrdeli.se/bilder/channel103.html v88 http://bsdelprojekt.se/bilder/lv-98.html ルイヴィトン パスポートケース
BurtonKt
2014/08/02 23:01
プラダ 迷彩 http://www.columship.dk/files/prada-bag-139.html acemff http://www.a1koereskolen.dk/html/seiko145.html プラダ バッグ 一覧 http://www.novateket.dk/img/loewe-jp3.html プラダ 新作 http://www.cde-dmd.com/Pictures/prada-outlet-31.html zla817 http://peliproducts.se/files/prada77.html v8g http://www.nielsens-planteskole.dk/content/loewe-jp118.html プラダ 手帳 http://peliproducts.se/files/prada61.html プラダスポーツ http://www.awinova.com/files/prada-66.html xmb http://www.marinemaler.dk/content/loewe-jp63.html ccltt1 http://www.godvagt.dk/content/loewe-jp69.html Seiko 5 http://www.marketing-magasin.dk/image/prada-yahooo-140.html ロエベ 財布 http://www.gartnerietkiel.dk/seiko/seiko41.html セイコー アウトレット http://www.marketing-magasin.dk/image/prada-yahooo-28.html
DennisHox
2014/09/04 16:18

コメントする help

ニックネーム
本 文
[ajax] Safari の responseText で UTF-8 コード文字化け回避 Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる