2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ペーストするアプリによって挙動が異なる文字化けの原因と対策を調べてみた

Posted at

概要

本記事では、コピペ時によく起こる文字化けについて調べたので、まとめてみました。

起きた現象

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と自動認識する→文字化けが起きない
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?