free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日記(2008-02-14) 最新 次の日記(2008-02-21)» /編集

2008-02-19 [長年日記]

§ [devel] WindowsのJIS X 0213:2004

 詳細はググるといいと思うよ。

 結論から言うと、UTF-8でHTML書いて、テストしたい文字は数値文字参照にしてIEで表示してコピペするのが確実だよ、と。正直よくわかんないんだよね。

 WindowsXPにMicrosoftUpdateでJIS2004対応のフォントをインストールすれば、JIS X 0213:2004の文字は見えるようになる。環境汚したくないならY.Ozフォントとか。

 とりあえずWindowsXPでの症状だけ書くけど、メモ帳でコピペは問題ない。ANSIコードで保存しようとすると「情報が失なわれます」と怒られて、保存すると実際に?に置換される。サロゲートペアな文字は??に置換されるようす。そもそも、ステータスバーにカーソル位置が出るけどその位置もサロゲートペアな文字が含まれてると2文字扱いになるみたい(vistaでも)。不思議。たぶんAPIのせいだと思う。IEの入力フィールドでも2文字とカウントされるようで、maxlengthまで入力できない(vistaでも)。バグだよねこれ。Excelでは問題ないな。IEも。コマンドプロンプトに貼り付けするとサロゲートペアの文字がトーフになっちゃう。素のサクラエディタでもペーストすると変なことになる。Unicode版サクラエディタでもまだ変かなあ。ペーストするとサロゲートペア文字が変だし。まあ開発版だけど。Meadowはどうもよくない。Gvimはコピペもダメだし、ファイル開いた時に?に置換するし。不便。ChangeLogによると秀丸は7からはいけてるらしい。しかしMicrosoftIME2003時代の辞書にはJIS2004の単語が入ってないので、結論としては色々やるにも数値文字参照が楽じゃないの、という。

 まあ、きっとUnicodeで扱われてる範囲では問題ないんだよね。ローカルのコードページのAPIが使われたりとか、独自に処理してるとこが怪しい。もしや、.Netでアプリ作りましょう、ということか。

 あれ、なんかVistaのメモ帳でANSIで保存すると?に置換されるな。JIS2004対応じゃないじゃん。そういうもんか?

 つまり,String.Lengthプロパティからは,文字数が得られるのではなく,UTF16エンコーディング時のワード数が得られるそうな。

 IEの動作なのだが、ページ中で文字コードが指定されていないと、鷗がそのまま送られるんと違うかな。といってもデフォルトコードページがCP932なので、0xefe3?EUC-JPとかShift_JISが指定されてると、Unicodeの数値文字参照で送信されるみたい。Firefoxは問答無用で数値文字参照になるようだが。受けとるほうはまあポリシー次第だけど。知らないうちに数値文字参照で入力されることもある、というのは押さえておいたほうがいいのかな。

 しかし、もう、UTF-8でいんじゃね的な…。もう諦めますた。

 詳細な調査の結果を発見した。はっきり簡体字で送信すると書いてるのもありますね。あとIE7で画面が真っ白になるページの対処法

 HTTPヘッダとかmeta要素で文字コードを指定しないで表示したフォームで、ハングルを入力して送信すると、ちゃんとハングルのコードで送信するようだ。すごい(?)

 ㅊ鷗でも鷗ㅊでもハングルと認識するらしい。なぜ?