Unicodeと国際化

不可視文字検出表示だけでは分からない違いを確認

隠れた位置と文字の役割を調べてから変更します。

不可視文字検出

入力テキスト

検出位置

テキストはこのブラウザ内で処理され、アップロードされません。

処理する種類を個別に確認

初期状態ではすべて未選択です。種類の選択は記載された効果の確認を意味します。再検出し、適用前にプレビューしてください。

Unicode17.0.0の固定範囲:521コードポイントと単独サロゲート。すべての字形の可視性を検出するものでも、安全性の判定でもありません。公式文字名はUnicode表記です。

オフセットとインデックスは0始まり、行と列は1始まり。列は表示幅ではなくコードポイント数です。CRLFは一つの改行で、CR、LF、NEL、LS、PSも改行です。CRLFの両文字は直前の行に属します。

上限は100,000UTF-16コード単位。未編集のCR/CRLFはブラウザから受け取った形を保ち、新たに入力する改行はLFになります。エディタ上では改行が正規化されて見える場合があります。

強調マーカーは表示補助で、文字として挿入されません。制御を実行せず保存順に表示します。文脈は前後それぞれ24UTF-16単位までです。

入力するかサンプルを読み込み、文字を検出してください。

検索語は合っているはずなのに一致しない。そんなときは不可視文字検出で、コピーした文字列の内部を確かめられます。見た目の空白と実際のコードポイントは必ずしも一致せず、幅のない文字が単語の途中に入ることもあります。

このページは不可視文字の可視化と選択的な処理を組み合わせています。まず問題を再現できる短い範囲を調べてください。検出された文字に正当な用途があるかどうかは、前後の文脈と利用先の仕様を確認して判断します。

不可視文字検出で違いを確かめる理由

見た目が似ていても保存内容は違う

不可視文字検出は、該当箇所を周囲の文字と一緒に表示します。数値と単位の間にあるNBSPは普通の空白に見えても改行を防ぎます。文字列比較が失敗するときは、空白の幅ではなくコードを確認できます。

よく似た二つの文字列にある隠れた位置を色付きの印で示した図。

連結に必要な文字を残せる

ZWJは複数の絵文字をつなぎ、ZWNJは言語によって連結を抑えます。処理対象は初期状態で未選択です。不要なゼロ幅スペースを選び、連結文字や異体字セレクタを残す判断ができます。

選んだ種類の印だけを除去し、つながった記号の組を残す図。

変更を確定する前の三つの確認

01

編集後は検出をやり直す

検出は手動です。ボタンまたはCtrl/Cmd+Enterで実行します。入力や処理対象を変更すると以前の結果は古くなり、コピーとダウンロードが無効になります。再検出してからプレビューしてください。

02

削除と空白置換を区別する

特殊空白は普通の空白に置き換え、その他の選択した種類は削除します。前後の文字列と変更数を確認してください。制御文字を選ぶとタブや改行も消え、行や項目がつながる場合があります。

03

適用後に戻せる状態を保つ

適用すると入力が更新され、再検出されます。取り消しで直前の入力と結果を復元できます。サンプルやクリアでも既存の入力を置き換える場合は、先に変更内容を確認します。

位置と役割を読み取るための表示

コードと文脈を一緒に表示

U+形式のコード、名前、分類、周囲の文字を確認できます。方向制御文字は診断用の文脈では可視の印に置き換えるため、制御文字自身が結果表示を並べ替えることはありません。

三つの位置を区別

UTF-16オフセットとコードポイントのインデックスは0始まり、行と列は1始まりです。列はコードポイント数で数えます。補助文字はUTF-16では2単位なので、各位置の数値は一致しない場合があります。

一覧は分割、報告は全件

一覧は50件ずつ追加表示します。JSONレポートには全検出項目と数値の位置を収録し、原文全体は含めません。テキスト出力は現在検出済みの入力であり、適用するまでは元の内容です。

対象範囲と処理の限界

固定されたUnicode17の表
制御文字、書式文字、非ASCII空白、異体字セレクタと指定のフィラーを調べます。書式文字が常に不可視または危険とは限りません。通常のASCII空白、似た字形、一般的な結合アクセントは対象外です。対象のフィラー:U+034F / U+115F / U+1160 / U+17B4 / U+17B5 / U+2800 / U+3164 / U+FFA0.
画面の折り返しは数えない
CRLFは一つの改行です。CR、LF、NEL、LS、PSも改行として扱います。列はバイト数や字形の幅ではありません。ブラウザが渡した貼り付け文字列を検査するため、元ファイルのバイト列は復元しません。
種類ごとに明示的に選択
自動で安全な削除範囲を推測しません。特殊空白の置換で改行禁止などの意味が失われます。制御文字の削除は行構造を、連結文字や異体字セレクタの削除は正しい言語表現や絵文字を変える可能性があります。
長さ制限と不正なUTF-16
上限は100,000個のUTF-16コード単位です。超えた入力は切り詰めずにエラーにします。単独サロゲートは検出のみで修復せず、損失を避けるためテキストのコピーと保存を無効にします。JSONレポートは取得できます。

不可視文字検出のよくある質問

どの種類の不可視文字を検出できますか?

ゼロ幅スペース、NBSP、BOM、方向制御文字、タブや改行などの制御文字、異体字セレクタ、指定されたフィラーを検査します。Unicode17に基づく固定範囲であり、すべての不可視表現を網羅するものではありません。

長文や機密テキストを入力する際の注意点はありますか?

100,000UTF-16コード単位を超える場合は、原因を再現できる範囲に分けてください。処理はブラウザ内で行います。共有端末やクリップボードへのコピー、ダウンロードしたファイルの管理は別途確認してください。

検出結果だけで問題解決を保証できますか?

保証できません。検出は保存された文字の種類と位置を示しますが、利用先の文法やフォント、言語の意図までは判断しません。処理後も元の検索や取り込みなど、実際に失敗した操作で結果を確かめてください。

RTLO(方向制御文字)を使ったなりすましとは何ですか

RLOなどの制御文字は表示方向を変えるため、ファイル名やソースの見た目が保存順序と異なることがあります。本ページは位置を報告しますが、攻撃の成立やファイルの安全性を判定する仕組みではありません。

検出された不可視文字を除去して安全なテキストにできますか

不要と確認した種類を選び、変更前後をプレビューして適用できます。ただし除去後の安全性は保証しません。絵文字や言語に必要な文字を除くと表示が壊れるため、用途が分からない種類は残してください。

文字や位置の扱いで気になる点がありますか?

気になる文字列に戻る

不可視文字検出で小さな再現例を調べ、役割が分かった種類だけを変更してください。表示の違和感と保存内容を照合できます。