Windows Vista対応 - Vista文字化け(JISX0213*1)対応 †
Windows VistaのJIS2004対応により、Windowsで使用できる日本語漢字数が増加した。
この追加された907字の中には「サロゲートペア」という特殊な文字が304字ある。
通常、Unicodeでは1文字あたり2バイトのデータ量を使うが、このサロゲートペアは1文字で4バイトのデータ量を必要とする。
その為、JISX0218対応済みのOSや、他システムとの連携を行うシステムでは、サロゲートペア対応が必要な場合がある。
※ちなみにサロゲートペアは4バイトだが「8文字(16進数)」でなく「5文字(16進数)」で表現する。(0x2000Bなど)
◆サロゲートペアへの対応方法
(1)サロゲートペア文字を受け付けない(入力文字制限などを設ける)
・送受信データの文字コード
└ JISX0213を正しくエンコードできるUNICODE系(UTF-8、UTF-16)を使用
・JavaScript
└ 正規表現によるチェック(&ref(): File not found: "index.php?plugin=attach&pcmd=open&file=chk_surrogate_js.html&refer=Windows%20Vista%C2%D0%B1%FE" at page "Windows Vista対応";)
・WEBアプリ
└ 正規表現によるチェック(&ref(): File not found: "index.php?plugin=attach&pcmd=open&file=chk_surrogate_java.html&refer=Windows%20Vista%C2%D0%B1%FE" at page "Windows Vista対応";)
・DB
└ 変更なし
(2)サロゲートペア文字を受け入れる
・JavaScript
└ JISX0213非対応のクライアントへの配慮(表示処理)
・WEBアプリ
└ JISX0213非対応のクライアントへの配慮(表示処理)
・DB
└ JISX0218に対応した文字コードへ変更(UTF-8、UTF-16)