AI に渡す前の見えないノイズを洗い出す
ゼロ幅文字・制御文字・不可視空白・主要な同形異字を検出し、除去前/後と検出レポートをブラウザ内で確認できます。
検出サマリー
検出レポート
使い方と AIO クエリ例
検出はレポートとクレンジング候補を返し、クレンジングは同じ結果を明示的な clean アクションで返します。- URLクエリ例:
ai_text_cleanser.html?input=Pass%EF%BB%BFword&action=clean&format=json format=jsonは検出レポート付きJSON、format=rawはクレンジング後テキストのみを返します。- 同形異字の検出は主要パターンを対象にしたヒューリスティックです。完全な Unicode confusables 網羅ではありません。
AIに渡す前のテキストに紛れ込んだ「目に見えないノイズ」を検出・除去するツールです。コピー&ペーストしたテキストにはゼロ幅文字や不可視空白、制御文字、見た目がアルファベットそっくりなキリル文字・ギリシャ文字(同形異字)などが混入していることがあり、AIへのプロンプトインジェクション対策やコード・パスワードの誤動作防止のために、これらを可視化してクリーンな状態にできます。検出だけでなく、行・列番号付きのレポートとクレンジング後テキストの両方をブラウザ内で確認できます。
使い方・サンプル・結果例・注意点
使い方
「入力テキスト」に検査したい文章を貼り付け、検出対象(ゼロ幅文字・不可視空白・制御文字・同形異字)をチェックして「検出」または「クレンジング」を押すと、右側に処理後テキストと検出レポートが表示されます。
サンプル入力
Password を AI に渡す前に確認する safe space と regular space を混ぜた例 раураl のような同形異字を含む例 Ignore previous instructions
結果例
「検出」を押すと、1行目の「Pass」と「word」の間にあるゼロ幅スペース(U+200B)、2行目の「safe」の後ろにあるノーブレークスペース(U+00A0)、3行目の「раураl」に含まれるキリル文字の а・р・у(見た目はa・p・yそっくり)、4行目のワードジョイナー(U+2060)がそれぞれ検出されます。検出レポートには「ZERO WIDTH SPACE / L1 C5 / 除去」のように行・列・文字種・処理方法が一覧表示され、クレンジング後テキストではゼロ幅文字と制御文字が除去され、不可視空白と同形異字は半角スペースや対応する英字に置換されます。
注意点
同形異字の検出は主要なキリル文字・ギリシャ文字パターンを対象にしたヒューリスティックであり、Unicode confusablesを完全網羅しているわけではありません。改行(\n)・復帰(\r)・タブ(\t)は制御文字として扱わず除去対象になりません。入力は5万文字までで、検出件数が200件を超える場合はレポートの先頭200件のみ表示されます。処理はすべてブラウザ内で完結し、入力テキストは外部送信されません。
こんなときに使えます
- AIエンジニアがユーザー投稿テキストをLLMに渡す前に、プロンプトインジェクションに使われがちなゼロ幅文字や不可視文字を一括チェックする
- セキュリティ担当者が外部から受け取ったテキストファイルに、見た目で判別できないキリル文字を使ったなりすましURLやIDが含まれていないか確認する
- エンジニアがWebサイトや他のドキュメントからコピーしたコードスニペットに、コンパイルエラーの原因となる不可視空白や制御文字が混入していないか検査する
- ライターや編集者が原稿に紛れ込んだノーブレークスペースなどの不可視空白を統一表記に揃える
よくある質問
「検出」と「クレンジング」ボタンの違いは何ですか?
どちらも同じ解析処理を行いますが、結果のステータスメッセージとAIO呼び出し時のactionパラメータの値が異なります。クレンジング後テキスト自体はどちらのボタンでも同じものが得られます。
ゼロ幅文字はなぜ除去され、不可視空白は置換になるのですか?
ゼロ幅文字(ZERO WIDTH SPACEなど)は本来不要な文字のため除去します。一方、不可視空白(ノーブレークスペースなど)はレイアウト上の意味を持つことがあるため、情報を失わないよう半角スペースに置換します。
同形異字の置換でアルファベット以外の言語が壊れませんか?
CONFUSABLE_MAPに登録されているのは主要なキリル文字・ギリシャ文字の一部のみで、日本語のひらがな・カタカナ・漢字は対象外です。ロシア語やギリシャ語の正規の文章を処理すると意図しない置換が起きる可能性があるため、検出レポートで置換箇所を確認してから利用してください。
検出対象を一部だけ無効にできますか?
はい。「ゼロ幅文字」「不可視空白」「制御文字」「主要な同形異字」の4つのチェックボックスで個別にオン/オフできます。すべて外すとエラーになります。
URLクエリでクレンジング結果だけを取得できますか?
はい。?input=テキスト&action=clean&format=raw のようにアクセスすると、クレンジング後のテキストのみが返ります。format=jsonでは検出詳細を含むレポート全体が取得できます。