結果的にしょうもないことで悩んだ話

先日のintebaseの話ですが

データの格納キャラクタセットはSJIS_0208

なぜだか引っ張ってきたデータの中に’\’が入っている。もちろんSJISの5c問題であることは常識だ。

しかしinterbase関数のソースを見てもそんなことをしている様子はない。

一体どこが入れてるのか?それともデータそのものに入っているのか?

悩んだ結果…

デバッグにvar_exportを使ってログに吐いたりというのをよく使っているのだが、察しの良い方ならばもうピンと来たはず。

そうvar_exportはエスケープ処理を行うのだった。

確認するのは1行一発でわかる。SJISの5cを持つ漢字をはいてみればよい。

こんなコードを書けばどうなるか

Log::debug(var_export(mb_convert_encoding("―ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭偆砡纊犾","sjis-win","utf-8"),true));

見事に1文字ずつ’\’がつきましたとさ。

カテゴリー: DB, php タグ: ,

関連してるかも記事

この記事へのコメント

※コメントはスパム対策の為、承認制となっています。あらかじめご了承ください。

トラックバックURL