[pgsql-jp: 38039] Re: データ移行時の文字コードエラーについて

Toshihiro Kurai tkurai @ taiyo-st.co.jp
2007年 2月 19日 (月) 16:45:59 JST


YuGoさん

> > webアプリケーションで入力されたデータをDBに登録しているのですが
> > その際にEUC-JP以外のコードとして入力されたのだと思います(?)。
> ここがわかりかねます。クライアントのエンコーディングがなんであれ、サーバ
> 側の文字セットに自動的に変換されているはずと思います。

おっしゃる通りと思います。
そこで、EUC-JPに自動的に変換出来なかった文字が
今回のデータ移行のときにエラーとなっているのではないかと・・・。

入力者の環境を調べていただいている最中なのですが
Mac環境にてWordの文章をコピー&ペーストしたようだとの情報が入ってきました。
そこでUnicodeでEUCに変換出来ない文字が原因なのかと勝手に憶測しているのですが  (--;)


加藤さん

>以前にも書いたことがありますが、↓のようにnkfに渡してやる方が安全かも。
>pg_dump -h HOST -U USER -O -x -d dbname | nkf --euc --unix > FILE_NAME

加藤さんのおっしゃる通りにしましたところ、移行は出来ました。
ただ、問題部分の文字が変わってしまうのでそこを了承いただけるかを
確認してみます。
既に化けているのだからという考えもありますね。

バージョンアップ時にそのままの状態で
移行しようとしたときはDBINKを使いINSERT〜SELECTでいくべきなのか・・・。
でも、これって問題の先送りにしかならないような気もしますね。
いっそpg_dumpもDBLINKもともにエラーだと踏ん切りつけやすいのですけど。



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