不可視文字・ゼロ幅スペース検出器|コピペで発見、ソースコードのエラー防止
見た目ではわからない不可視文字やゼロ幅スペースをテキストから検出、可視化、そして除去するための開発者向けオンラインツールです。Webページやドキュメントからコピー&ペーストしたコードや文章が原因不明のエラーを引き起こす際に、問題の特定と解決をサポートします。
💡 ツール概要
このツールは、テキストに潜む見えない文字をあぶり出し、安全なテキストを生成します。データはサーバーに送信されず、すべてお使いのブラウザ内でのみ処理されるため、機密情報を含むコードでも安心して利用できます。
- リアルタイム検出・可視化
テキストを入力欄に貼り付けるだけで、含まれる不可視文字を即座に
<U+200B>のような形式でハイライト表示します。 - 詳細な情報表示 検出された各不可視文字について、Unicodeコードポイント、規格上の名称、テキスト内での出現回数を一覧で確認できます。
- クリーンなテキスト生成 検出されたすべての不可視文字を完全に取り除いた、クリーンなテキストを自動で生成します。そのままコピーして安全に利用できます。
🧐 よくある質問
Q. 不可視文字とは何ですか?なぜ問題になるのですか?
A. 画面上には表示されないものの、文字データとして存在する特殊な制御文字のことです。代表的なものに「ゼロ幅スペース (U+200B)」や「BOM (U+FEFF)」があります。プログラムのソースコードにこれらの文字が混入すると、コンパイラやインタプリタが予期せぬ文字として解釈し、構文エラーや原因不明のバグを引き起こすことがあります。
Q. どのような時に不可視文字は混入しますか?
A. Webサイト、PDF、Word文書など、リッチなテキスト形式のコンテンツからテキストをコピー&ペーストした際に、元の書式情報などと一緒に意図せず混入するケースが最も一般的です。特に技術ブログのコードスニペットをコピーした際に、シンタックスハイライト用の見えない文字が含まれていることがあります。
📚 不可視文字の豆知識
「ゼロ幅スペース(Zero Width Space / ZWSP)」は、本来はタイ語やクメール語のように単語の区切りにスペースを入れない言語において、テキスト処理上での「単語の境界」を明示するために使用される制御文字です。改行を許可する位置を示す役割も持っています。
しかし、Webの世界ではこの特性が悪用されることもあります。例えば、SNSなどで特定のキーワードの自動検出を回避したり、URLの見た目を変えずに別のリンクとして機能させたりする「ホモグラフ攻撃」の一種として使われることがあります。また、ファイルの先頭に付与されることがある「BOM(Byte Order Mark)」も代表的な不可視文字で、特にPHPのプログラムにおいて headers already sent エラーを引き起こす原因として知られています。