また、文字化けファイルが送られてきた。今回の難易度は低く、先頭はUTF-16で読める。しかし、途中で化ける。改行で復活するが途中でまた化けることを繰り返している。前回の教訓を生かして、はじめからバイナリエディタで眺めていく。

 

UTF-16では改行は 0D 00 0A 00 となるが、なぜか 0D 0A 00 となっていた。2バイトのペアがずれるために、2N+1回目の改行で文字化けが発生し、2N回目の改行でもとに戻ることを繰り返していた。0Dの後ろに00を挿入して解決。前回も謎だったが、どうやったらこんなファイルを作れるのだろうか。MACで生成したファイルをメールで送付し、Windowsで開いているのだが、何かの条件が重なると発生するのだろうか。

 

(このブログは半分以上、将来の自分に向けて書いている備忘録である。こうしておけば同じようなファイルを受け取ったときにすぐに処理できる)