文字コード

February 01, 2008

PHPPHPの正規表現関数は日本語文字列を扱うときはmb_系を使わなければいけないのかと思っていたのだけれども、どうやらそうでもないらしい。
内部エンコーディング及びファイルエンコーディング、そしてmb_regex_encodingを統一すればOK(?)。
<?php
mb_regex_encoding
("UTF-8");
?>


とりあえず、手元の環境では成功。mb_regex_encodingはしっかりと設定したほうが吉っぽい。


【参考URL】
アシアルブログ

January 09, 2008

PostgreSQLPostgreSQLでDBの移行をすることがあったのだけれども、
移行元DB(含むサーバlocale)の文字コードがかつての主流EUC-JPで、
移行先DBの文字コードがUTF-8だったのでpg_dumpの際にちょっと困ったのでメモ。
dumpファイルがプレーンテキストならばdumpファイル自体の文字コードを変換したあとにdumpファイル内に書かれている"EUC-JP"を"UFT-8"に置換すればよいのだけれども、
ラージオブジェクトが含まれているとそうはいかない。
で、検索してみるとPostgreSQLのML解決方法を発見。


まず移行元(EUC-JP)のpostgresql.confを編集。
client_encoding = UTF-8


で、設定再読み込み。
/etc/init.d/postgresql reload


この状態でpg_dumpをすれば移行先で普通にpg_restoreが成功した。
pg_dumpの引数とかではなくて、postgresql.confをいじるとか結構トリッキーで面白い。


【参考URL】
http://ml.postgresql.jp/pipermail/pgsql-jp/2007-November/022542.html