[pgsql-jp: 35241] Re: IBM拡張文字の扱いについて

kk noritamag @ hotmail.com
2005年 4月 13日 (水) 19:10:19 JST


レス遅くなりました。kkです。
詳しいご説明、ありがとうございます。

# 引用文は一部、改行箇所を変更させて頂いております
> eucJP-open については次をご覧ください。
> http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
>
> 開発するソフトウェアのメンテナンスの事までも
> 考えて、本当にそれで嬉しいでしょうか?
> (ODBC ではなく、PostgeSQL の文字コード変換に
> CP51932 を追加するという事になるでしょうが)
>
> PostgreSQL、PHP の両方とも、SJIS-open、
> eucJP-open に対応しているのですから、
> その機能をうまく使って対応した方が、余計な
> コードを書かずに済みますので、今後のメンテナンス
> の事を考えると良いのではなかという気がします
> けれども。

文字コードの奥の深さを実感しているこの頃です。
とてもややこしいですね ^_^;
実は、拡張文字の存在を知ったのも最近でして、
まだ、森山様の回答の全ては理解できていないというのが
正直な所であります。

頂いた回答や、ネットで調べたことから少しづつながら
分かってきており、大変感謝しております。
# 調べごとをしていると、森山様のHPが結構ヒットしますね


> それぞれの対応関係は次の通りです。
>
>   TOG/JVC     PostgreSQL  PHP                    Windows
>   ----------------------------------             --------
>   SJIS-open   SJIS        SJIS-win   ← 互換 →  CP932
>   eucJP-open  EUC_JP      eucJP-win  ←非互換→  CP51932

私がはまっているのは、上記2行目の状態ですね。

下記(Windows 機種依存文字が文字化けしない文字コード
の組み合わせ)については、我々の開発環境ではどのように
なっているのか、また、どこをどのように変更したら良いのか、
はずかしながらまだ分かっておりません。
(PostgreSQL DB は EUC_JP)

php.ini を変更したり、既存プログラムを一部変更する必要が
あるのかな、とは予想しております。

先日、開発メンバと、今度の特殊文字の取扱いについて
話し合う機会があったのですが、既存のプログラム(php)
およびサーバの設定は、なるべく変えたくないという結論に
至ったため、PostgreSQLの文字コード変換表を変更する
方向で調査を進めているところでした。

状況次第で、下記の方向でも調査を進めたいと思っております。
また状況が変わったら報告させて頂きます。


> ○Windows 機種依存文字が文字化けしない文字コードの組み合わせ
>
>   PostgreSQL DB ⇔ PHP-internal ⇔ PHP-in/out ⇔ Windows IE
>   EUC_JP           eucJP-win       SJIS-win      CP932
>   EUC_JP           eucJP-win       UTF-8         UTF-8('〜'問題に注意)
>   UNICODE(UTF-8)   UTF-8           SJIS-win      CP932
>   UNICODE(UTF-8)   UTF-8           UTF-8         UTF-8('〜'問題に注意)
>
>     PHP-internl = mbstring.internal_encoding
>     PHP-in/out  = mbstring.http_input / mbstring.http_output
>
>   ※すべての組み合わせで、すべての文字について確認したわけではありませ
>     んので、実際に使う場合は、事前に検証を行って問題のない事を確認して
>     使用するようにしてください。
>
> ○'〜'問題
>   一部の文字について Unicode(UCS) でのコード値が JIS 規格と MS とで異
>   なる問題。
>
>   IE など Windows のブラウザは、下の表の MS-Unicode を使用している。
>
>     文字 EUC-JP SJIS   JIS-Unicode MS-Unicode
>     ―   0xA1BD 0x815C U+2014      U+2015
>     〜   0xA1C1 0x8160 U+301C      U+FF5E
>     ‖   0xA1C2 0x8161 U+2016      U+2225
>     −   0xA1DD 0x817C U+2212      U+FF0D
>     ¢   0xA1F1 0x8191 U+00A2      U+FFE0
>     £   0xA1F2 0x8192 U+00A3      U+FFE1
>     ¬   0xA2CC 0x81CA U+00AC      U+FFE2
>
> どのような対応を行う場合でも、正確に現状を把握しておいて、どのような対
> 応が好ましいのか決める必要があると思います。
>
> ○その他の問題
>
> Windows の機種依存文字を扱う場合、上記のような問題以外にも、下のような
> 問題もあるという事を認識して開発を行わないと、運用してから問題にぶち当
> たり問題の原因究明に時間を取られてしまうという事になるかもしれません。
> 標準化されていないものを扱うという事は、それだけリスクを伴います。
>
>   マイクロソフト サポート技術情報 - JP170559
>   [PRB] SHIFT - JIS と Unicode 間の変換問題
>   http://support.microsoft.com/default.aspx?scid=kb;ja;JP170559
>
>   Java の MS932, Cp943C, SJIS の違い
>
http://www2d.biglobe.ne.jp/~msyk/cgi-bin/charcode/bbs.cgi?past=1&c=gr&n=93
>   ※Java の問題というよりも、IBM製ソフトとMS製ソフトでの SJIS⇔Unicode
>     変換の違いが問題になってくる場合があります。
>
> ‖森山 将之 (MORIYAMA Masayuki)
> ‖e-mail: msyk @ mtg.biglobe.ne.jp
>
>



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