ChatGPTの文章に潜む隠れた文字とは?その正体と削除方法
公開日:2026年11月12日 · 約7分で読めます · TraceWipeチーム
ChatGPTの文章をドキュメントに貼り付けたら、どこかおかしい——行がうまく折り返されない、はっきり見えている単語が検索で見つからない、Webフォームで入力が拒否される。そんなとき、原因はたいてい 目に見えない文字 です。
このガイドでは、AIが生成した文章やコピーしたテキストにどんな見えない文字が入り込むのか、それは「透かし」なのか、そして見つけて削除する方法を解説します。
「隠れた文字」とは
コンピューターが文字を表すしくみであるUnicodeには、目に見える幅を持たない文字や、通常のスペースとまったく同じに見える文字がたくさんあります。組版や、アラビア語・ペルシア語・ヒンディー語などの言語では正当な用途がありますが、日常的な日本語の文章では、たいてい意図せず紛れ込んだものです。
よく見られるものは次のとおりです:
| 文字 | コード | 働き |
|---|---|---|
| ゼロ幅スペース | U+200B | 目に見えない改行候補位置——幅はゼロ |
| ゼロ幅非接合子 / 接合子 | U+200C / U+200D | 文字や絵文字のつながり方を制御 |
| ワードジョイナー | U+2060 | 見えないまま改行を防ぐ |
| バイトオーダーマーク | U+FEFF | ファイルの目印で、ときどき文中に紛れ込む |
| ソフトハイフン | U+00AD | 行末で単語が分割されたときだけ表示される |
| ノーブレークスペース | U+00A0 | スペースに見えるが改行させない |
| 狭いノーブレークスペース | U+202F | 細いノーブレークスペース。一部の数値・日付の表記で使用 |
| 双方向制御文字 | U+202A〜U+202E、U+2066〜U+2069 | テキストの表示方向を変える |
| Unicodeタグ文字 | U+E0000〜U+E007F | ASCII文字の不可視のコピー——メッセージ全体を隠せる |
ChatGPTは文章に隠れた透かしを入れている?
この疑問が話題になったのは 2025年4月 のことです。ユーザーや教育系スタートアップが、OpenAIの新しい推論モデルが長い回答に 狭いノーブレークスペース(U+202F) を挿入していると報告し、多くの人が秘密の透かしだと考えました。
当時の報道によると、OpenAIはこれらの文字についてモデルの学習方法による特性であり、意図的な透かしではないと回答しました。その後の検証では、この現象はほぼ見られなくなったとされています。OpenAIは、テキストの透かしを研究したものの導入しなかったと公表しており、その理由として回避が容易であることや、英語を母語としない人が不当に不利になるおそれを挙げています。AIの透明性に関する法律の施行に伴い方針は変わりつつあるため、最新の情報は各社のドキュメントで確認してください。
いずれにしても、次の2点ははっきりしています:
- 隠れた文字は、AIの文章を見分ける確かな手がかりではありません。 ワープロ、PDF、Webページ、メッセージアプリなど、さまざまなソースの文章に現れ、簡単なクリーニングで消えます。
- 削除しても文章が「検出されなくなる」わけではありません。 AI検出ツールが分析しているのは文章の傾向であり、見えない文字ではありません。
それでも隠れた文字が問題になる理由
意味がなくても、見えない文字は実際にトラブルを引き起こします:
- レイアウトの崩れ —— おかしな改行、折り返されない単語、ずれたテキスト。
- 検索がヒットしない —— 中にゼロ幅スペースが入った「請求書」は、「請求書」で検索しても見つかりません。
- コードやデータのエラー —— 設定ファイル、CSV、表計算の数式、URLに紛れ込んだU+FEFFやU+200Bは、非常に見つけにくいエラーの原因になります。
- フォームやユーザー名が通らない —— 珍しい文字を含む入力を拒否するサイトがあります。
- 隠された指示 —— Unicodeタグ文字を使えば、無害に見える文章の中に文をまるごと隠せます。セキュリティ研究者は、人間には見えない指示をAIシステムに紛れ込ませる手口(「プロンプトインジェクション」)を実証しています。
- なりすまし —— 双方向制御文字を使うと、テキストやコードを実際の動作とは違って見せることができます(「Trojan Source」と呼ばれる手法)。
隠れた文字を見つける方法
- TraceWipeのAIテキストクリーナーを開きます。
- テキストを貼り付けます。
- ツールが隠れた文字を1つずつ数え、名前(例:ZERO WIDTH SPACE)を付けて、文中の位置をハイライトします。
- Unicodeタグ文字が含まれていれば、それが表す隠しメッセージを復号して表示します。
すべてブラウザ内で動作するため、テキストが端末の外に出ることはありません。
貼り付けて、きれいにして、コピーするだけ。
隠れた文字を削除する方法
テキストクリーナーでは、元の文章の横にクリーンなバージョンが表示されます。次のオプションを選べます:
- 特殊な空白を通常の空白に変換 —— ノーブレークスペースや細い・狭いスペースを通常のスペースに置き換えます。
- 連続する空白をまとめる —— 残った余分な空白を整えます。
- 引用符やダッシュを半角に —— 曲がった引用符(“ ”)、ダッシュ(—)、三点リーダー(…)を、キーボードで打てる単純な文字に変換します。コード、CSV、プレーンテキストのシステムに便利です。
- 絵文字の修飾子を残すか削除するか —— 家族の絵文字や色付きのハートなどは結合子や異体字セレクタに依存しているため、既定では残します。
最後に クリーンなテキストをコピー をクリックします。
ほかの方法
- Microsoft Word: 編集記号の表示/非表示 ¶ をオンにすると一部の書式記号が見えるようになり、検索と置換 で特殊文字を置き換えられます。ただし、すべてのゼロ幅文字が表示されるわけではありません。
- コードエディタ: VS Codeは、多くの不可視・紛らわしいUnicode文字を既定でハイライトします。
- 書式なしで貼り付け: Ctrl + Shift + V(Windows)や Cmd + Shift + Option + V(Mac)で書式は消えますが、見えないUnicode文字は 消えません。
よくある質問
隠れた文字を削除すると文章の内容が変わりますか?
いいえ。クリーナーが削除・正規化するのは、見えない文字と特殊な空白だけです。引用符やダッシュを変換するオプションは句読点のスタイルを変えるもので、既定ではオフになっています。
アラビア語やペルシア語の文章で削除しても大丈夫ですか?
ゼロ幅接合子・非接合子は一部の文字体系で意味を持ち、右から左に書く文章では方向制御記号が重要です。使う前に結果を確認し、元の文章は残しておいてください。
ほかのAIツールも隠れた文字を入れますか?
隠れた文字は、ほかのチャットボット、PDF、Webページなど、どんなソースの文章にも現れる可能性があります。文章の出どころの証拠ではなく、書式の問題として扱いましょう。
隠れた文字でAI向けのメッセージを隠せますか?
隠せます。Unicodeタグ文字を使えば、人間には見えないけれどもAIモデルを含むソフトウェアには読める文を、まるごと埋め込めます。テキストクリーナーは、そうしたメッセージを復号して表示します。
TraceWipeのツールはすべてブラウザ内でプライベートに動作します。