[pgsql-jp: 39337] Re: 'encoding "EUC_JP" has no equivalent in "UTF8"' の理由

MORIYAMA Masayuki moriyama @ miraclelinux.com
2008年 4月 4日 (金) 19:03:00 JST


ミラクル・リナックスの森山です。

Tatsuo Ishii wrote:
 >> Web アプリケーションなどで文字化けを起こさないようにするために
 >> はユーザーが入力した文字列に対して、次のような処理を行う事が必
 >> 要と思われます。(一例)
 >
 > このあたりはいちいちうなずけますね.

文字化けの原因をきちんと解析せずにマナーの問題として片付けて
しまっているとマルチバイト文字処理の不備(盲点)を突いた攻撃に
対して脆弱になってしまう危険がありますから注意が必要だと思っ
ています。

 >> PostgreSQL に cp51932ex を追加して幸せになれるのか私には自信が持てません。
 >
 > やめた方がよさそうですかね.

EUC-JP符号化方式でWebブラウザとやりとりするのであれば次
のような変換(下記の例はごく一部)を考慮しなければなりません。

eucJP-ms        PosgreSQL EUC_JP IE EUC-JP       Firefox EUC-JP
     -> Unicode      -> Unicode       -> Unicode      -> Unicode
--------------  ---------------  --------------  ----------------
   F9AC->U+E183    F9AC->エラー     F9AC->U+5F45    F9AC->U+5F45
8FBCF4->U+5F45  8FBCF4->U+5F45   8FBCF4->誤変換  8FBCF4->U+5F45
--------------  ---------------  --------------  ----------------
   FCE2->U+E2D3    FCE2->エラー     FCE2->U+9AD9    FCE2->U+9AD9
8FF4FB->U+9AD9  8FF4FB->U+9AD9   8FF4FB->誤変換  8FF4FB->U+FFFD
--------------  ---------------  --------------  ----------------
8FECBF->U+9DD7  8FECBF->U+9DD7   8FECBF->誤変換  8FECBF->U+9DD7

U+5F45 http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=5f45
U+9AD9 http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=9ad9
U+9DD7 http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=9dd7
U+E183 http://www.unicode.org/charts/PDF/UE000.pdf
U+E2D3 http://www.unicode.org/charts/PDF/UE000.pdf
U+FFFD http://www.unicode.org/charts/PDF/UFFF0.pdf

IE の誤変換の問題に対処するためにはアプリ側での処理が不可
欠で、残念ながら PostgreSQL に cp51932 や cp51932-ex と
いったものを追加するだけでは不十分という事になります。

どういった文字をどういったルートで変換して扱うとどういっ
た問題が起きるのかという事を整理して cp51932* が必要かど
うか検討をした方がよいのでしょうね。

 >> そうこうしているうちに Unicode 5.1.0 がリリース直前という状況
 >> になってきています。
 >>
 >>   http://www.unicode.org/versions/Unicode5.1.0/
 >>
 >> 個人的には、次の拡張が日本語情報処理にとってインパクトがある
 >> とみています。
 >> ---------------------------------------------------------
 >> A major feature of Unicode 5.1.0 is the enablement of
 >> ideographic variation sequences. These sequences allow
 >> standardized representation of glyphic variants needed for
 >> Japanese, Chinese, and Korean text. The first registered
 >> collection, from Adobe Systems, is now available at
 >> http://www.unicode.org/ivd.
 >> ---------------------------------------------------------
 >
 > たしかに「インパクト」はありそうですが,これは我々にとって吉でしょうか?
 > それとも凶でしょうか?それすらわからないorz
 > # とりあえず以下を見ただけなのですが.
 > # http://gaiji.sourceforge.jp/index.php?Unicode%20Ideographic%20Variation%20Sequence%20%E3%81%AE%E6%A6%82%E8%A6%81

プログラマにとっては、今までとは異なる種類の問題に対処する必
要が出て来るので大変になるかもしれません…

Unicode 5.1.0 で Windows XP の「噂」の字体と Windows Vista
の「噂」の字体を区別して扱えるようになるので、JIS X 0213:2004
での例示字体の変更による影響でフォントに依存して字体が変わっ
てしまって困っているところでは使いたいかもしれません。

個人的には、Unicode 5.1.0 は、『日本語情報処理』本に続く第ニ
の黒船になると予想しています。

Unicode 5.1.0 は今日(2008年4月4日)リリース予定となっていますね。

--
ミラクル・リナックス株式会社
森山 将之 moriyama @ miraclelinux.com
Web: http://www.miraclelinux.com/



pgsql-jp メーリングリストの案内