* サーバー側は、小松氏のこれをbloga.jp:80へ置いてあります。
* クライアント側はWS処理をjQueryプラグイン化してみました。これです。
* ちなみに、このDemoサンプルは、下記5行でローカルでも別ドメインでもどこにでも設置出来ます。
<script src="http://bloga.jp/ws/jq/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="http://bloga.jp/ws/jq/js/jquery.ws-0.3-noenc-pre.js" type="text/javascript" charset="utf-8"></script>
<script src="http://bloga.jp/ws/jq/conn/wschatdemo0.3.js" type="text/javascript"></script>
<script>/*サポートしてない時のalertメッセージを抑止*/$.ws.wsSetup({nonosupportmsg:true});</script>
<div id="wsdemos"></div>
【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いです。実験用ですので、カオス(混沌)をあえて意図したりもしますので、標準やValidとは無縁だったりしますが、何卒、ご了承ください ( _ _ b
【info】
最近はTwitterでぶつぶつ言ってることが多いです。
>http://twitter.com/toshirot
予想通り、ブラウザバージョンごとの違いが結構あるので、
とりあえず、対策うんぬんを考える前に
問題点を洗い出して確定しておこうと思います。
まず、responseTextで受け取るファイルの文字コードによる、
ブラウザバージョンごとの振る舞いの違いです。
文字コード関連調査 [ responseText ]
http://jsgt.org/ajax/ref/charset_test/responsetext/test_1_make_table.php
XMLHttpRequestオブジェクトという名前が示すとおりなら、
utf-8やutf-16で書けば問題ないはずですが、やはり違います。
たとえば、
WinのIE6はUTF-8 、UTF-16ともに成功しますが、
MozillaやFirefoxは、Win、Mac、Linuxともに UTF-8 以外は文字化けします。
ところが、
Mac Safari1.2と
Win Opera8.0 では逆に、UTF-16以外が文字化けします。
しかも、SafariはBOM付でないUTF-16 BEやUTF-16 LEは失敗します。
と、まあ、日本人には、こんな現実がとりあえずありますので(^^;
心してかかる必要があります。
実は、responseXMLもresponseTextと異なるようなので(^^;
それも、これから調査します。
できました。
文字コード関連調査 [ responseXML ]
http://jsgt.org/ajax/ref/charset_test/responsexml/test_1_make_table.php
そこで、UTF-8でURIエンコードした文字列をサーバーへ置いておけば解決しますが
サーバー側でスクリプトを使えるなら、、、
PHPとJavaScriptのURIエンコードを比較
http://jsgt.org/ajax/ref/charset_test/responsetext/php/urlencode.php
2005.4.24
とりあえずの、
1: responseXML
【中締め的結論050424】
responseXMLに関しては、UTF-8が安全です。XMLHttpRequestオブジェクトが存在して、かつ、UTF-8がだめなブラウザはLinuxのKonquerorのみという状態です。
FYI :
* XML宣言は省略してもOKですが、encoding属性だけを省略するとアウトです。
必ず、<?xml version="1.0" encoding="UTF-8"?>までしっかり書く必要があります。
* Konqueror/3.3 はすべての文字コードで失敗していますが、実はUTF-16とUTF-16 LE BOM では文字化けしていません。ただ、行末にあった半角空白が除去されて返って来たためマッチしませんでした。
* Konqueror/3.3 はsend(null)という書き方がエラーになりました。
UTF-8がOK
linux
Win
Mac
UTF-8がNG
linux
Win
Mac
そもそもresponseXMLを受け取れない
linux
Win
Mac
その他
* Mozillaはmilestone 0.9.7(nightlyビルドの 2001-11-28 以降に実装),Ffはすべてに実装,Safariは1.2x以降に実装
【中締め的対策050424】
Konquerorについて、とりあえず考えられそうな対策
case(Konqueror)
{
2: responseText
【中締め的結論050428】
responseTextに関しては、UTF-8は、最もユーザーの多いWin IEやMozilla/Firefoxで使えますので、おおむね安全といえますが、Opera8やLinuxのKonqueror、MacのSafariは文字化けします。3ブラウザともBOM付のUTF-16ならOKです。
FYI :
* Konqueror/3.3 はsend(null)という書き方がエラーになりました。
UTF-8がOK
linux
Win
Mac
UTF-8がNG
linux
Win
Mac
そもそもresponseXMLを受け取れない
linux
Win
Mac
その他
* Mozillaはmilestone 0.9.7(nightlyビルドの 2001-11-28 以降に実装),Ffはすべてに実装,Safariは1.2x以降に実装
【中締め的対策050428】
Konqueror、Safari、Opera8について、とりあえず考えられそうな対策
case(Konqueror||Safari||Opera8)
{
*とはいえ、もし、日本語を使うなら、responseXML を使う方が安全といえるでしょう。
【追記2006.8】
AjaxでShift_JISやEUC-JPは使えるのか?-1- responseText編
(XHR/responseTextで読み込むファイルのcharset別 動作ブラウザ)
http://jsgt.org/ajax/ref/charset_test/responsetext/seu8/sample.htm
AjaxでShift_JISやEUC-JPは使えるのか?-2- responseXML編
http://jsgt.org/ajax/ref/charset_test/responsetext/seu8xml/sample.htm

視力回復手術は銀座スポーツクリニック
![]()
アスリートが選ぶレーシックは、銀座スポーツクリニック
夏休みのかみさんとまりもの帰省用にちょっと調査中---
≪国内格安航空券≫出張・帰省・旅行に最適
全国どこでも出発!国内格安航空券
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |




