仕様と根拠
特殊な空白の見つけ方
Unicode の PropList.txt が White_Space とする 25 字のうち、通常の空白(U+0020)と改行を除くものを特殊な空白として扱います。NBSP(U+00A0)・全角スペース(U+3000)・EN SPACE から HAIR SPACE(U+2000〜200A)・U+202F・U+205F などで、見た目は空白でも文字としては別物です。通常の空白(U+0020)に置き換えます。タブは別の目的で使われるため指摘だけにして残します。
不可視の文字の見つけ方
DerivedCoreProperties.txt の Default_Ignorable_Code_Point(表示しなくてよい文字)に含まれる、ゼロ幅スペース(U+200B)・ワードジョイナー(U+2060)・ソフトハイフン(U+00AD)・BOM(U+FEFF)・方向制御文字(U+200E〜200F・202A〜202E・2066〜2069)などを検出します。これらは取り除きます。U+200B は White_Space には含まれず、この分類で検出します。
残すものと位置の数え方
異体字セレクタ(U+FE00〜FE0F など)とゼロ幅結合子(U+200D)・非結合子(U+200C)は、日本語の異体字や絵文字の組み合わせに正しく使われるため、初期設定では情報として示して残します。位置は改行(LF)で数えた行と、その行の先頭からのコードポイントの数で示します。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| Unicode Character Database 18.0.0 PropList.txt(White_Space・Join_Control・Bidi_Control) | 2026年10月29日 | 2026-08-07 版。White_Space は 25 字(U+0009〜000D・0020・0085・00A0・1680・2000〜200A・2028・2029・202F・205F・3000) |
| Unicode Character Database 18.0.0 DerivedCoreProperties.txt(Default_Ignorable_Code_Point) | 2026年10月29日 | 2026-08-07 版。Default_Ignorable_Code_Point は 4174 字(U+200B〜200F・2060〜2064・FEFF・00AD など) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 文字の見た目や意味までは判定しません。Unicode の分類にもとづいて「通常の空白ではない空白」「表示されない文字」を機械的に示すだけです。
- Default_Ignorable_Code_Point のうち、割り当てのない予約領域や、ほとんど文章に現れない言語固有の文字は検出の対象外です。
- 取り除いた結果、絵文字の組み合わせや異体字の見た目が変わる場合があります。初期設定では異体字セレクタと ZWJ を残します。
- 表示される文字(例: 全角の英数字、似た形の別の文字)の混在は判定しません。
ご利用にあたって
- Unicode のデータは版によって更新されます。このツールは 18.0.0 のデータにもとづきます。
- 取り除いた文字が意図したものでないか、整えた文章を元の文章と見比べてから置き換えてください。