先日の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文字ずつ’\’がつきましたとさ。
この記事へのコメント
トラックバックURL