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

ISHIDA Akio iakio @ mono-space.net
2007年 2月 20日 (火) 23:59:29 JST


こんにちは。石田@苫小牧市です。

斉藤 wrote:
> 斉藤です。
> 
>>> 私の場合、EUCでのリストアは諦めてDBをUNICODEにしてしまいました。
>> UNICODEも考えたのですが、こちらでも文字コードエラーは
>> 発生しました。(同じ箇所であるかは確認していないのですが・・・。)
> 
> すいません、やり方は省いてました。
> 以下のやり方でうまくいったと思います。
> (数ヶ月前のことなので間違ってたらすいません)
> 
> 1.Linuxでpg_dumpを使用しファイルに出力
> 2.出力したファイルをWindows上でKanjiTranslator(フリーソフト)と
>     いうのを使用し、EUCからUNICODEに変換
> 3.Linuxで
>     initdb --encoding=UTF-8 --no-locale
>     でDBを作成
> 4.ファイル内の
>     SET client_encodingを'EUC-JP'から'UTF8'に置換
> 5.Linuxでpsqlを使用しリストア
> 
>> Linuxから接続しました。
>> Windowsから接続を行うとLinuxと違う挙動をするのでしょうか?
>> 今度、Windowsを使って試してみます。
> 
> WindowsのPostgresを使ったこと無いので解らないのですが、
> Windows機種依存文字をそのまま扱えたりするのかな?
> と思っただけです。
> 
> 識者の方、教えてください。
> http://ml.postgresql.jp/pipermail/pgsql-jp/2006-December/021440.html
> このスレッドを読む限り無理のような気がしますが。
> 

上記のスレッドの
http://ml.postgresql.jp/pipermail/pgsql-jp/2007-January/021465.html
にもあるように、client_encoding が sjis、database_encoding が
euc-jp の変換に関しては機種依存文字を扱うことができますが、
sjis <=> utf-8 や euc-jp <=> utf-8 で機種依存文字を含んでいる
場合は(デフォルトでは)エラーとなります。

また、utf-8 で機種依存文字を扱うことができるように
CREATE CONVERSION でマッピングを追加することができますし、
今まで何度かそういったことをやった方を見たことがあります。

> 
> P.S.
>   メーリングリストの全文検索が行方不明ですが、
>   止まっているのでしょうか?
>   http://ml.postgresql.jp/mailman/namazu.cgi

現在サーバの移行中だそうです。しばらくお待ち下さい。

-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>



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