fixmint
JA

テキストに潜む見えない文字:場所と削除方法

著 · · 2026年11月8日更新 · 4分で読めます

見えない文字とは、ゼロ幅スペース、改行なしスペース、方向制御文字などの、表示されないUnicodeの文字コードです。通常の空白に見えたり、何も表示されなかったりするため、文章は普通に見えます。しかし検索、コード、フォームの入力チェックでは別の文字列として扱われます。見つけるには文字コードを調べ、その特定の文字を削除または置換します。

見えない文字を削除テキストに見えない不要な文字が混じる無料で使う

混入する原因

見えない文字の多くは、入力ではなくコピーによって入り込みます。

  • Webページ。 サイトでは、2語が行の途中で分かれないようにするために改行なしスペース(U+00A0)を使い、長い単語で改行してよい位置を示すためにゼロ幅スペース(U+200B)を使います。文章をコピーすると、これらも一緒にコピーされます。
  • ワープロソフト。 ハイフネーションのためにソフトハイフン(U+00AD)が挿入されます。行がその位置で改行されない限り、目には見えません。一部のエディタでは、特定の場所に改行なしスペースが自動で挿入されることもあります。
  • チャットアプリやメール。 チャットやメールソフトからコピーしたメッセージには、特に複数の言語が混ざっている場合、ゼロ幅接合子や方向マークが含まれることがあります。
  • 双方向のテキスト。 アラビア語、ヘブライ語、そしてそれらが混ざったテキストでは、左から右への方向マーク(U+200E)、右から左への方向マーク(U+200F)、埋め込みや上書きの制御文字(U+202A〜U+202E)などを使います。これらは文字の意味ではなく、行の表示方法を制御します。
  • バイト順マーク。 ファイルの先頭にあるバイト順マーク(BOM、U+FEFF)は、一部のエディタが書き込む署名です。目には見えませんが、ファイルをプレーンテキストとして読み込むと、実際の先頭文字になってしまいます。
  • AIチャットの画面。 一部のAIチャットのインターフェースからコピーしたテキストにも、これらの文字が含まれることがあります。主な原因は、テキストの表示方法とコピーの仕組みにあるため、これを書き手の意図の表れと見なす必要はありません。

問題が起きる理由

見えない文字はそれぞれが実在する文字コードなので、ページが同じに見えても文字列は変わってしまいます。

  • 検索が失敗する。 単語の途中にあるゼロ幅スペースは一致を妨げるため、その単語を検索しても見つかりません。
  • コードが壊れる。 ソースファイル内の改行なしスペースは、多くの言語で構文エラーになります。しかもエラーは、一見正しく見える行を指すことが多いです。コードに貼り付けたときによく起きるもう一つの問題については、カーリークォートのガイドで解説しています。
  • フォームの入力チェックで弾かれる。 @の後にゼロ幅スペースがあるメールアドレスは正しく見えますが、チェックに通りません。
  • 文字数がずれる。 文字数の数え方はツールによって、これらの文字を含めたり含めなかったりします。そのため、同じテキストでも2つの違う合計が出ることがあります。掃除の前後で単語数カウンターを使って数えると、違いを確認できます。

簡単な例を挙げます。「invoice」という単語は7文字です。この中にゼロ幅スペースが1つあると、同じ単語が8つの文字コードになりますが、画面上では全く同じに見えます。「invoice」で検索しても、2つ目の方は見つかりません。

見つけ方

文章を眺めてもわからないため、次のいずれかを使ってください。

  1. テキストを、文字コードを一覧表示するツールに貼り付けます。例えば見えない文字を削除では、何も変更する前に見つかった文字を報告します。
  2. コードエディタでは、空白や特殊文字を表示する設定をオンにします。すると改行なしスペースは、通常のスペースとは別の記号として表示されます。
  3. プログラミング言語で、怪しい文字列の文字コードを表示します。例えばPythonでは、[hex(ord(c)) for c in text] で各文字を一覧できます。改行なしスペースは 0xa0、ゼロ幅スペースは 0x200b と表示されます。

削除方法

削除は対象を絞って行う必要があります。ASCII以外の文字をすべて削除すると、アクセント記号、引用符、他の言語の文字まで失われてしまいます。代わりに次のようにします。

  • 改行なしスペースは、ほぼ常に空白の意図があるので、通常のスペースに置き換えます。
  • ゼロ幅スペース、ソフトハイフン、バイト順マーク、不要な方向マークを削除します。
  • アクセント付きの文字、カーリークォート、実際の句読点は残します。

貼り付けテキストの修正は、別の場所からコピーされたテキスト向けに作られています。コピーに改行の崩れや不自然な空白も含まれている場合に使ってください。

fixmintでの方法

  1. テキストを 入力したテキスト に貼り付けます。
  2. 見つかった文字の一覧を確認します。各文字には名前(例:ゼロ幅スペースはZWSP)が表示され、それぞれどう処理されるかが示されます。
  3. 絵文字内の結合文字を残す にチェックを入れたままにすると、絵文字の並びが1つの記号として表示され続けます。
  4. カーリークォート、長い/短いダッシュ、… を通常のASCII文字にも変換する は、コードやデータの場合のみチェックを入れ、その後 コピー または .txt をダウンロード を使います。

例外的なケース

  • 絵文字の並びは、意図的にゼロ幅接合子を使っています。これを削除すると、1つの絵文字が複数の記号に分かれてしまいます。
  • 改行なしスペースは、数字と単位の間など、一部の組版では正しい使い方です。フランス語の一部の句読点でも使われます。不要なものだとわかっている場合にだけ置き換えてください。
  • 掃除が終わったら、元のテキストと比較すると、どこがどう変わったかを正確に確認できます。

よくある質問

見えない文字があると、AIが書いたテキストだということですか。

いいえ。見えない文字は、Webページ、ワープロソフト、チャットアプリ、そして一般的なコピー&ペーストから混入します。見えない文字があっても、誰が、あるいは何が文章を書いたかはわかりません。

ASCII以外の文字をすべて削除すれば解決しますか。

いいえ。アクセント記号、引用符、他の言語の文字まで削除されてしまいます。代わりに、見えない特定の文字コードだけを削除してください。

文字列に見えない文字が含まれているかどうか、どうやって確認できますか。

文字列の長さと、目で見て数えられる文字数を比べてください。文字コードを一覧できるツールに貼り付けるのも方法です。数が一致しなければ、何か見えない文字が含まれています。

英語原文をもとに、AIの支援を受けて翻訳しています。

コメント

    まだコメントはありません。最初のコメントを書いてみましょう。

    評価(任意)

    メールアドレスは表示も保存もされません。

    How to Remain Valuable When Intelligence Becomes Cheapの表紙How to Remain Valuable When Intelligence Becomes Cheap

    AIが認知作業の大半をこなせるようになっても希少であり続ける、人間ならではの強み、経済面と戦略面での優位性について解説した224ページのガイドです。

    $3.84Gumroadで入手英語版