01
1. 不可視文字が問題を引き起こす理由
ゼロ幅スペース(U+200B)、結合子マーク(U+200C、U+200D)、ファイル先頭に残るBOM(U+FEFF)などの文字は画面上には何も表示されませんが、文字列としては実際に存在しています。これらがコードや設定ファイルに混入すると、文字列比較が失敗したり、正規表現のマッチングがずれたり、JSON・YAMLの解析エラーを引き起こすことがあります。
目には見えないがテキスト内に潜むゼロ幅文字、BOM、改行なしスペース(NBSP)、制御文字を検出し、コードポイントごとの件数を表で表示した上で一括除去します。
| コードポイント | 名前 | 件数 |
|---|
ゼロ幅スペース(U+200B)、結合子マーク(U+200C、U+200D)、ファイル先頭に残るBOM(U+FEFF)などの文字は画面上には何も表示されませんが、文字列としては実際に存在しています。これらがコードや設定ファイルに混入すると、文字列比較が失敗したり、正規表現のマッチングがずれたり、JSON・YAMLの解析エラーを引き起こすことがあります。
このツールはゼロ幅文字群(U+200B~U+200D、単語結合子U+2060)、BOM(U+FEFF)、改行なしスペースNBSP(U+00A0)、方向指示文字(U+200E、U+200F)、ソフトハイフン(U+00AD)、およびタブ・改行を除くC0/C1制御文字を検出します。それぞれコードポイント(U+XXXX)、名前、出現回数とともに表に整理されます。
ワープロソフトからコピーしたテキスト、誤ったエンコーディングで開いたファイル、一部のメッセージアプリやサイトが透かしや追跡目的で挿入するゼロ幅文字などによく見られます。ソースコードや設定ファイルに残っていると、diffで不可解な変更として表示されたりビルドが失敗する原因になるため、貼り付ける前にこのツールでスキャンしておくと安心です。