[pgsql-jp: 42114] Re: ポスグレ初心者の疑問(初投稿です)
Tatsuo Ishii
ishii @ postgresql.org
2024年 11月 11日 (月) 01:12:27 UTC
石井と申します。
> 対策案
> 1. PostgreSQL側の文字コードをSJISにしてもらい、文字コードの変換を回避。
> 理由があってUTF-8にしているのなら無理でしょうけど
これは無理ですね。SJISはサーバ側でサポートされていない文字コードなので。
> 邪道な案
> 4. PostgreSQL本体に手を加え UTF-8 から SJIS への変換テーブルを変更
> unicode.org から CP932.TXT をダウンロードし
> src/backend/utils/mb/Unicode/UCS_to_SJIS.pl を書き換えて実行し、
> src/backend/utils/mb/Unicode/utf8_to_sjis.map を置き換えて
> PostgreSQL本体を再ビルド
これを「合法的」に行う方法があります。
5. CREATE CONVERSIONを使って新しいエンコーディング変換方式を定義し、そ
れをデフォルトとして既存のエンコーディング変換方式を置き換える。
このためには変換方式の実装をユーザ定義C関数として実装する必要がありま
すが、PostgreSQLのソースコード
src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.cを
コピーして関数名を適当に変更して流用すればよいでしょう。
この関数の中ではutf8_to_sjis.mapとsjis_to_utf8.mapを参照しているので、
それらは希望の変換結果になるように修正をしておく必要があります。直接
mapを修正するか、4の方法を行います。
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp
pgsql-jp メーリングリストの案内