概要
本記事では、コピペ時によく起こる文字化けについて調べたので、まとめてみました。
起きた現象
ChatGPTからコピーしたテキストをStandard Notesというメモアプリ(どちらもiOS版)にコピペした場合「意味」という文字列が「諢丞袖」という文字に化けてしまいました。
しかし、Apple純正のメモアプリにコピペした場合は文字化けが起きませんでした。
なぜこの現象が起きるのか、原因を調べてみました。
そもそも文字化けとは
誤ったエンコードにより文字が正しく表示されず、意味不明な記号や文字列として表示される現象です。(フォントに対応しておらず文字化けが起きる場合もあるようです)
ペースト先がStandard Notesだと文字化けする理由
ChatGPTを含む多くのサービスは、UTF-8 BOMなしでテキストを扱っています。
しかし、ペースト先のアプリケーションがUTF-8設定でなかったり、自動認識に失敗した場合はバイト列を別のエンコーディングとして解釈してしまいます。
これが原因で、文字化けが起きていました。
UTF-8 BOMありであれば、エンコーディングが明示されるため、文字化けしにくいみたいです。
ペースト先がApple純正メモだと文字化けしない理由
なぜApple純正メモアプリとStandard Notesでこのような違いが起きるのでしょうか?
Apple純正のメモアプリにはテキストを自動でUTF-8に変換する仕組みがあるみたいで、どんなエンコーディングのデータでも、メモアプリを経由すると統一されたUTF-8のデータに変更されるようです。
そのため、一度Apple純正メモアプリを経由してStandard Notesにペーストすると文字化けは起きませんでした。
まとめ
まとめると、下記のような状況だったみたいです。
文字化けは「エンコーディングの不一致」が原因で起こります。
特に、UTF-8 BOMなしのテキストを、Shift_JISとして開いてしまうことで発生することが多いです。知識として入れておこうと思いました。
- StandardNotes→UTF-8と自動認識できなかった→文字化けが起きる
- Apple純正メモアプリ→内部処理でUTF-8と自動認識する→文字化けが起きない