スポンサー広告
         
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 
 

Centos
         時間ができたので前々から放置していたDBのUTF8(Unicode)化をしてみた。

それまで組み込んでいたperlスクリプト、webとの連動のphpもutf8化する必要があったので、
かなり億劫に感じていたのだが、少し調べた所nkfというコマンドがある事を知った。

例えば、今回行った EUC文字コード(postgresql)からUTF8化するとき、
#nkf -Ew 'inputfilename' > 'outputfilename'.txt
といった具合に "-Ew"オプション(E=eucと仮定して読み込み、w=utf8として変換)で良い。

当初、'inputfilename'と'outputfilename'を同じファイルにしてしまえば良いやー。
と思って直接書き換えようとしていたら、空のファイルが作成されるだけになった。

念のため、ディレクトリ毎バックアップとっといてよかったー。

そんなわけでいったん適当なテキストファイルにして、その後mvコマンドなり、cpで上書きなりすると良い。

DBの方はpg_dumpallのコマンドを使うと良い。

その後はうまくいったのだが、DBにデータを格納する段階で
なぜかsyntax errorが頻発

結論として見落としていたのは、
Jcodeの存在。
元々格納する為のxmlデータはutf8を前提にしていたので、
スクリプトで utf8->eucに変換していた。

その事を忘れていたため、
utf8のDBに、eucコーディングのデータを入れようとしていた。

その事に気がつくまでにしばらくかかった。

同様にphpでのweb出力画面も、一部meta以外に書き換えをする必要のある物が存在する。
その事に注意。

*番外
osx用のlocalizedファイルは、中に.localizedフォルダがあり、その中のja.stringsの中に書き込まれた文字をファイル名として表示する。

そのため、osxのデフォのフォルダ
'Documents'等は日本語を優先にすると'書類'として表示される。

これをうまく使うと、色々と素敵なことになる。
スポンサーサイト
 
 

トラックバック用URL ;http://gatolynx.blog100.fc2.com/tb.php/2-791e9fec

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。