先日、とあるシステムのソースを閲覧した。
CSVを出力する際、何故かそこら中にutf8からsjis-winへの変換がある。
「これ大丈夫なのか?」と思ったものの、
一見するとちゃんと動いてるっぽい。
と、思ったものの…
文字化ける事があった。
原因は当然、sjis-winに変換した文字列を再度「utf8 → sijis-win」した事。
変換処理を確認すると、
「mb_detect_encoding」でUTF-8かどうかをチェックしてるようだが、
どうもチェックの精度が全然ダメらしい。
一応「mb_check_encoding」とか、
「mb_detect_encoding」に文字コード指定とかすればいけそうな雰囲気は感じる。
しかし、一度引っかかった箇所をそんな楽観的な結論で済ますのもどうかと…
確実にチェックできるのならば事故防止のためにも今後使っていきたいが、
さて、どうすれば確証を得られるのだろうか?
ひとまず必要なのはutf8とsjis-win。
一番確実なのは、全文字リストを作成して1文字ずつチェックするプログラムを組むことだ。
やってられるかい!
どっかの誰か、
信用できる調査結果を公開してないものか…
まあ、そもそもとして。
コンバートを多重にかけるのが頭おかしいんだけど…