仕事で「文字化けしたWebページを治してくれ」ということでソースコードが来た。
エディタで開くとたしかに文字化けしている。
文字コード変換すればいいかな? と思ったが変換できない。
なんだこのファイル? と思ったら、文字化けしたまま保存されたファイルだった。
おそらく元はシフトJISだったのを誤ってUTF-8として解釈して保存されたもの。
これはダメかもわからんね・・・と思ったが、
生成AIに渡してみたらそれっぽいファイルを作ってくれた。
ChatGPTやGeminiより、Claudeが恐ろしく優秀だった。Claudeすごい。
どうやって変換したのか?聞いてみたら、類推でそれっぽいテキストを当てはめたとのこと。
なるほど。生成AIすごいなー。そしてAIにも得意・不得意があるんだな。
そしてインターネットアーカイブに文字化け前の一部のページが載ってた。
インターネットアーカイブありがたや~
Claudeの作ったものを詳しく見てみると、8~9割くらいは大丈夫そうだけどぽつぽつ間違ってる雰囲気。
インターネットアーカイブを参考に人力で修正した。
そして確認のためもう一度わざと文字化けさせてみると、部分的に「ここはちゃんと復元できてない」のがわかる。
例えば「こんにちは」の文字化けは「����ɂ���」で、「ありがとう」の文字化けは「���肪�Ƃ�」である。そうするとつまり「������」は、「ありがとう」でも「こんにちは」でもない別の何かだったものだ。
これはもうわからないから諦める。
そんな感じで「指定の文字列で文字化けを再現する」ツールが欲しくなったので作ってみた。
ただ文字化けの結果は環境により様々なので、再現といってもほんの一部のパターンだけだろう。
今回自分が遭遇したパターン(シフトJISとUTF-8の誤解釈)はおなじ化け方をすることは確認したが、他の文字コードはわからないし、フォントによっても見え方が違ったりするだろう。