Guide
26 Mar 2026
7 分で読めます
テキスト内の不可視文字 - 隠れたUnicodeの検出と除去方法
ゼロ幅スペース、BOMマーカー、ソフトハイフンなどの不可視Unicode文字について学びましょう。どこから来るのか、テキストからどう検出・除去するかを解説します。
不可視文字とは?
不可視文字とは、文字列内にスペースを占めながら画面上に何も表示しないUnicodeコードポイントです。通常のスペースや句読点とは異なり、これらの文字は完全に隠れており、肉眼で検出するのは非常に困難です。テキストファイル、コード、データベース、Webコンテンツに存在し、多くの場合気づかれません。
知っておくべき一般的な不可視文字
| 文字 | Unicode | 名前 | 目的 |
|---|---|---|---|
​ | U+200B | ゼロ幅スペース | 目に見えるスペースなしで改行を許可 |
 | U+FEFF | バイト順マーク(BOM) | UTF-16ファイルのバイト順を示す |
­ | U+00AD | ソフトハイフン | オプションのハイフネーションポイントを提案 |
  | U+00A0 | ノーブレークスペース | 単語間の改行を防止 |
‌ | U+200C | ゼロ幅非接合子 | 合字の形成を防止 |
‍ | U+200D | ゼロ幅接合子 | 合字または絵文字の結合を強制 |
⁠ | U+2060 | ワード結合子 | スペースを追加せずに改行を防止 |
不可視文字はどこから来るのか?
- Webサイトからのコピー&ペースト: WebページにはHTMLにゼロ幅スペースやフォーマット文字が含まれており、コピー時に静かに付いてきます。
- ワードプロセッサ: Microsoft Word、Googleドキュメントなどのエディタは、ソフトハイフンやノーブレークスペースなどの不可視フォーマット文字を挿入します。
- PDF文書: PDFから抽出されたテキストには、テキスト配置に使用される不可視文字が頻繁に含まれます。
- 異なるOS: Windows、macOS、Linuxは行末やテキストエンコーディングの処理が異なります。
不可視文字が引き起こす実際の問題
1. コードの破損と構文エラー
変数名内のゼロ幅スペースは、謎めいたメッセージを伴うコンパイルエラーを引き起こします。コードは視覚的に完璧に見えますが、コンパイラは予期しない文字を認識します。
2. 文字列比較の失敗
画面上では同一に見える2つの文字列が、一方に不可視文字が含まれていると等価チェックに失敗することがあります。
検出ツールの使い方
- テキストを貼り付け: 疑わしいテキストをコピーして検出ツールの入力フィールドに貼り付けます。
- 検出をクリック: ツールが即座にすべての文字をスキャンし、見つかった隠れたUnicode文字をハイライト表示します。
- 結果を確認: 各不可視文字がUnicodeコードポイント、名前、テキスト内の位置とともに識別されます。
- テキストをクリーンアップ: ワンクリックで検出されたすべての不可視文字を除去します。
ヒント: 外部ソースからコピーしたテキストをコードやデータで使用する前に、必ず不可視文字検出ツールでスキャンしてください。
不可視文字検出ツールを試す
無料のオンラインツールでテキスト内の隠れたUnicode文字を即座にスキャンできます。登録不要です。