[pgsql-jp: 38460] Re: 文字コードの変換で問題

Norio Suzuki suzuki @ tricorn.co.jp
2007年 6月 7日 (木) 14:04:07 JST


鈴木です。

At Thu, 07 Jun 2007 12:29:53 +0900,
Hiroshi Ishiura wrote:
> 
> UTF-8のDBから
> pg_exec($connect,"SET CLIENT_ENCODING TO 'SJIS';");
> を介してSJISでCSVファイルに出力しています。

PostgreSQL では文字コード変換せずに UTF-8 のまま PHP(ですよね?)に持っ
てきてしまうのはどうですか?

文字コード変換は PHP の mb_convert_encoding() 等を使って実施するように
すれば、pg_exec() でのエラーは回避できると思います。


ここで問題になるのは、Shift_JIS へ変換できなかった文字をどうするのか?
ですが、単純に「変換できなかった事を示す文字」に変換して良いのなら、
PHP の mb_substitute_character() あたりを使うのはどうでしょう?

# mbstring が使えない PHP だと話は別ですが。。。

;; ---------------------------------------------------------
;; 鈴木則夫 <suzuki @ tricorn.co.jp>
;; トライコーン株式会社 http://www.tricorn.co.jp/
;; 160-0023 東京都新宿区西新宿6-24-1 西新宿三井ビル13F
;; Tel 03-5324-7071 Fax 03-5324-7072



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