sinkope is not kind of paradoxical existence

🎼 🎹 🏀 🌠 🚶 👣 📷 💻 🎨 🎮 📖 and more !

器用すぐる

とあるプログラムを組んでテストするのだが、うまくいかないでいた。
UTF-8 なテキストを読み込んで UTF-8 な環境の PostgreSQL のテーブルにinsert/updateするだけ。なのに更新結果を見ると文字化けしている。うーん……。
つか、マルチバイトな内容を select すると"\x1B"とかで始まってるのが謎だよな。これって ISO-2022-JPエスケープシーケンスやんか。PHPスクリプトそのものを EUC-JP で動かしているとはいえ、冒頭でちゃんと mb_internal_encoding("UTF-8"); してるし、つか JIS が出てくる場面ないぞ?
terminal で元ファイルを head しても文字化けせずにちゃんと表示出来るしなぁ。もちろん env で LANG=ja_JP.UTF-8 になっているのは確認済み。
……ん? ちょっと待てよ?
念のため、別マシンから slogin して、同じように元テキストを head すると……おわっ?!文字化けするやんか。nkf -Jw とかやったら、ちゃんと表示される。
げげげ! 元ファイルが JIS だったのか!
いやでも当該マシンのコンソールの terminal だと化けないのは何故?
ひょっとして GNOME の terminal って、その辺を吸収しちゃうのだろうか? 一応「端末」→「文字コードの設定」で「現在利用しているロケールUTF-8)」なのは確認したのだけど。
うーむ、恐ろしい……。
まぁとにかくプログラムは正常に動くようになったから、結果オーライ。