貼り付けた文章がエラーになる? 見えない文字(ゼロ幅スペース)の見つけ方と消し方【実機検証】

コピーして貼った文が、検索で見つからない・文字数が合わない・エラーになる、と困っていませんか?画面に見えない文字6種類を、PowerShellの命令で見つけて消す方法が分かります。

  • 結論、ゼロ幅スペースなど6種類の見えない文字が貼った文に入っているかどうかは、Windowsに最初から入っているPowerShellの命令1本ですぐ見分けられます。もう1本で消せます。
  • 起きる事は、メモ帳の検索で引っかからない事、文字数が見た目より多くなる事(1個入れた時は1多い)、Pythonで引用符の外にあるとSyntaxErrorが出る事、Excelで#N/Aが出る事の4つです。
  • 数える命令を貼ると、見えない文字の数・種類・何文字目かが文字で出ます。
  • 消す命令を貼ってから数え直すと、0個になりました。

私のPC(Windows 11 Home・25H2)で2026年10月23日に確かめました。

別に、仕事の頼み5種類をAIに頼んだ返事を数えると、測れた31件で見えない文字が混ざった物は0件でした。ただし各1〜2回で言い切れず、長い文章の貼り付けは確かめていません。ここは希望があれば、確かめてお見せしたいと思います。

Windowsで貼った文に心当たりがある方が対象です(Windowsでだけ試しました)。調べたい文をコピーしてから数え直した結果が0個なら、この6種類が原因ではありません。実験から順に見ていきましょう。

実験: 見えない文字を1個入れて試した結果

メモ帳で見えない文字のない普通の文を「承認済み」で検索すると青く強調され、下の表示が「4 /6 文字」になっている画面

まず「ゼロ幅スペース」とは何でしょうか。ざっくり言うと、文字と文字の間に入った、透明な糸のようなものです。糸は目に見えませんが、文字の列の中では1個として数えられています。コンピューターから見ると、普通の文字と同じ1文字です。

実験では「承認」と「済み申請」の間に、この文字(U+200B)を1個入れました。見た目は6文字、中身は7文字です。比べるために、見えない文字を入れていない同じ文も用意しました。

結果をまとめた表です。場面は4つで、それぞれ見えない文字なしとありを並べています。

場面 見えない文字なし 見えない文字あり
メモ帳の検索で「承認済み」 強調あり(下の表示は「4 /6 文字」) 強調なし(下の表示は「7 文字」。「見つかりません」は出ません)
メモ帳の下の文字数 6 7
ExcelのLEN 6 7
ExcelのVLOOKUP完全一致 12 #N/A

見えない文字が1個入っているだけで、結果がこれだけ変わりました。起きた4つのことを順に説明します。

1つ目は検索です。メモ帳で「承認済み」を検索すると、見えない文字のない文は青く強調されました。

見えない文字入りの文は、見た目が同じなのに強調と選択が付きません。「見つかりません」とは出ず、見えない文字をまたぐ語が一致しないだけです。

メモ帳で見えない文字が入った文を同じ「承認済み」で検索しても強調が付かず、下の表示が「7 文字」になっている画面

2つ目は文字数です。見た目は6文字なのに、メモ帳の下の表示は7文字、ExcelのLENも7でした。

LENは、文字数を数えるExcelの関数です。見えない文字1個で、数が1つずれます。Wordの文字カウントやメールの文字数は測っていません。

3つ目はPythonです。Pythonは、プログラムを動かすための言葉の一つです。

見えない文字がコードの中で、文字列の引用符(”…”)の外にあると、SyntaxErrorで止まります。終了コードは1で、U+200Bと行番号が出ました。

“…”の中の1個ではSyntaxErrorは出ませんでした(エラーは”…”の外の行を指しました)。貼れば必ずエラーになる、とは言い切れません。

コマンドプロンプトでtype sample.pyの中身を見せたあと、python sample.pyが2行目でSyntaxErrorとU+200Bの不正な文字を示した画面

画面に見えない文字は写っていません。エラーの文だけが手がかりです。

4つ目はExcelのVLOOKUPです。表から名前で探す関数で、完全一致で探すと、探す名前と表の名前の中の文字が1つでも違えば当たりません(この記事で試したのは日本語の名前だけです)。

見えない文字入りの名前は#N/A、つまり「見つからない」になりました。見えない文字なしの名前は12を返しました。近似一致とXLOOKUPは測っていません。

Excelの表で見えない文字入りの名前は文字数が7でVLOOKUPが#N/A、見えない文字なしの名前は文字数が6で12になっている画面

ChatGPTやGeminiのコードをそのまま貼ると、見えない文字は入る?

AIが書いたコードは、コピーして貼れば、たいてい普通に動きます。それなら、ここまでの見えない文字は、AIのコードにも入っているのでしょうか?

ChatGPTの返事の画面で、Pythonのコードの枠の右上にコピーのボタンがあり、その下に返事全体のコピーのボタンが並んでいる
Gemini(Flash 標準)の返事の画面で、黒いコードの枠の右上にコピーのボタンがあり、その下に返事全体のコピーのボタンが並んでいる

私のPCで2026年10月23日〜24日に、ChatGPTとGemini(Flash 標準)のブラウザ版にPythonなどのコードを頼みました。「コピー」ボタンで取った22回(コードの枠10回・返事全体12回)を数えると、見えない文字は6種類とも0個でした。

各条件1〜2回で、頼んだのは短いコードだけなので、混ざらないとは言い切れません。Geminiが断ってコードを出さなかった回も2回ありました。

ただし、別の困りごとがありました。ChatGPTの返事の一番下の「コピー」(返事全体)で取ると、コードの改行が消えて1行につながりました。

コードの部分だけをPythonで動かすとSyntaxErrorで止まりました。4回中4回で、道具でマウスを動かして画面のボタンを押した回も同じでした。コピーした中身を表示すると、次の画面のようになります。

Windows PowerShellの窓に、ChatGPTの返事全体のコピーの中身を表示した画面で、コードの改行が消えてprintが前の行の後ろにつながっている

コードの右上の「コピー」(コードの枠)で取ると、改行が残ったまま動きました。ChatGPTの4回と、道具でマウスを動かして画面のボタンを押した回も同じです。

Geminiは、返事全体のコピーでも改行が残りました(Pythonのコードで確かめた3回)。コードは、コードの枠の右上の「コピー」で取ってください。

Windows PowerShellの窓に、ChatGPTのコードの枠のコピーの中身を表示した画面で、コードが改行されたまま別々の行に並んでいる

次の動画は、ChatGPTで返事全体とコードの枠の「コピー」を順に押し、PowerShellで中身を表示した録画です(音なし)。

普段のコピーでは、見えない文字は入りませんでした。貼ったコードが動かない時は、まず改行が消えていないかを見て、それでも合わない時に見えない文字を数えます。ChatGPTの画面は変わることがあるので、2026年10月23日〜24日に試した範囲の話です。

では、自分の貼った文にも入っているかどうかを、どう確かめるか。次の節で、PowerShellの1行で数える方法を説明します。

見つけ方: Windows PowerShellの1行で数える

最初の一歩は、下の流れに沿って数えてみることです。

①貼った文で困った
▼
②数える命令を貼ってEnter(1回目は命令そのものを数えるので0個)、続けて消す命令も貼ってEnter
▼
③調べたい文をコピーしてから、↑を2回押して数え直す
▼
④結果で分かれます。「1個以上」なら↑を2回押して消す行を出してEnter、もう一度↑を2回押して数え直し、0個になれば消せています。「0個」なら、この6種類ではありません(ほかの種類は数えていません)

メモ帳に貼っても、見た目は普通の文と同じです。ただし下の文字数が見た目より多くなるので、それが気づく手がかりです。

私は、ファイルを開いた場合と、文字だけの形でクリップボードに入れた文をCtrl+Vで貼った場合で確かめました。貼った時は「7 文字」「行 1、列 8」で、見た目より1多い表示でした。

とはいえ、毎回文字数を数えて比べるのは手間ですよね。そこでPowerShellを使います。

PowerShell(パワーシェル)は、Windowsに最初から入っている、文字で命令を出す道具です。ざっくり言うと、パソコンに頼みごとを文字で書いて渡す窓口です。

私が使った窓は、Windows Terminalの中のWindows PowerShellです。クリップボードとは、コピーした文が一時的に入っている置き場のことです。次の命令は、その中の文を調べて数えます。

$t = Get-Clipboard -Raw; $m = [regex]::Matches($t, '[\u200B\u200C\u200D\u2060\uFEFF\u00A0]'); "見えない文字: $($m.Count) 個・全体 $($t.Length) 文字"; $m | ForEach-Object { 'U+{0:X4}({1} 文字目)' -f [int][char]$_.Value, ($_.Index + 1) }

数えるのは、U+200B・U+200C・U+200D・U+2060・U+FEFF・U+00A0の6種類です。U+202Fなど、ほかの種類は数えません。文の中に印が付くのではありません。「何個・どの種類・何文字目」が文字で出ます。

私が2026年10月23日に確かめた手順です。命令は、Chromeでコピーした時と、メモ帳からコピーした時の両方で試しました。ここでのChromeは、この記事の本文を、サイトの見た目を付けずに開いた物です。

  1. Windows PowerShellを開きます。キーボードのWindowsキーを押してスタートを開き、「powershell」と入力して、出てきた「Windows PowerShell」を選んでEnterを押します。私のPCではWindows Terminalの窓が開き、窓の題は「Windows PowerShell」でした。
  2. 上の数える命令の枠の中で、マウスを3回続けてクリックすると、私のChromeでは1行が選ばれました。Ctrl+Cでコピーし、PowerShellの窓でCtrl+Vを押して貼り、Enterを押します。貼っただけでは動かず、Enterで動きました。
    1回目は命令そのものを数えるので、「見えない文字: 0 個」と出ます。これは正しい結果です。メモ帳からコピーした時(220文字)より、末尾の改行の分だけ多く、私のPCのChromeでは「全体 222 文字」と出ました。
  3. 次の節の消す命令も、同じように枠を選んでコピーし、貼ってEnterを押します。「消しました」と出ます。
  4. 調べたい文を、メモ帳でCtrl+A、続けてCtrl+Cでコピーします。ほかのアプリからコピーした文は、試していません。
    メモ帳でCtrl+Cが効かない時がありました。文字が選ばれて青くなったのを見てからコピーしてください。
  5. PowerShellで↑を2回押して「数える」の行を出し、Enterを押します。
    ↑は1回ではなく2回です。直前の行が「消す」か「数える」かで、欲しい行が1つ前か2つ前になるためです。
  6. 「見えない文字: 1 個・全体 7 文字」と「U+200B(3 文字目)」のような行が出れば、見えない文字が入っています。
  7. 消したい場合は、次の節に進みます。

この画面はメモ帳から命令をコピーして貼った回なので、1行目は220文字です。

下の画面は、数える→消す→数えるを順に回した結果です。1個が0個になったことが分かります。

Windows PowerShellに命令を貼ってEnterを押した結果が並び、見えない文字が1個から0個に変わり全体が7文字から6文字になった画面

上から、命令そのものを数えた「0個」、「消しました」、「1個・7文字」と「U+200B(3文字目)」、「消しました」、「0個・6文字」の順です。

消し方: 1行で消して、数え直す

消す命令です。クリップボードの文から見えない文字を取り除き、きれいになった文をクリップボードに戻します。

$t = Get-Clipboard -Raw; $t -replace '[\u200B\u200C\u200D\u2060\uFEFF]', '' -replace '\u00A0', ' ' | Set-Clipboard; "消しました"

U+00A0だけは、消さずに普通の空白に置き換えます。

貼っただけで、Enterを押す前に動き出すこともありませんでした。調べたい文がクリップボードに入ったまま、続けて次のように進めます。

  1. PowerShellで↑を2回押して「消す」の行を出し、Enterを押します。「消しました」と出ます。
  2. もう一度↑を2回押して「数える」の行を出し、Enterを押します。
  3. 「見えない文字: 0 個・全体 6 文字」と出れば、消せています。
  4. 消した文を貼りたい所でCtrl+Vを押します。

メモ帳の新しいタブに貼ると、「承認済み申請」と表示され、下の表示は「6 文字」「行 1、列 7」でした。数や文字の食い違いはありませんでした。

消した後の文を貼ったメモ帳の新しいタブで、承認済み申請と表示され、下の表示が行1、列7と6文字になっている画面

次の動画は、私のPCで2026年10月23日にWindows TerminalのWindows PowerShellを録画した物で、音なし・繰り返し再生です。命令を貼ってEnter、↑を2回ずつ押して数える→消す→数え直し、7文字が6文字になるまで写ります。

測ったのは、Windows 11のWindows PowerShell 5.1と、クリップボードの文字だけです。消した文をほかのアプリに貼った後の数と、太字などの書式つきの文は測っていません。

よくある質問

1回目に「0個」と出ました。間違いですか?

間違いではありません。1回目は、クリップボードに入っている命令そのものを数えています。命令の中に見えない文字は無いので、「0個」が正しい結果です。

Chromeでコピーした時は、メモ帳からコピーした時(220文字)より末尾の改行の分だけ全体が多く、私のChromeでは222文字と出ました。「0個」は同じです。

↑を押すと、思った行と違う行が出ます

↑は2回押します。直前に回した命令が「消す」か「数える」かで、欲しい行が1つ前か2つ前になるためです。この記事の順番では、2回押すと欲しい行が出ました。

メモ帳でCtrl+Cが効きません

私も、Ctrl+AのあとCtrl+Cが効かない時がありました。メニューにキーが行っていたようです。

文字が選ばれて青くなったのを見てから、コピーしてください。

ブラウザやメールからコピーした文は?

調べたい文をブラウザやメールから直にコピーした場合は、試していません。メモ帳に貼った場合だけ確かめました。命令の枠をChromeでコピーして貼ることは、サイトの見た目を付けずに開いた物で試しました。ここは希望がたくさんあれば記事に追加して、試した様子をお見せしたいと思います。

この記事で試せていないこと

確かめた範囲と測っていないことを、9つの項目ごとに並べた表です。

項目 確かめた範囲 測っていないこと
検索 Windows 11のメモ帳の検索だけ。探す語が見えない文字をまたぐ時(承認|済み)だけ一致せず、強調と選択が付かない。「見つかりません」は出ない Word・ブラウザ・メールの検索
文字数 U+200B 1個で差1(メモ帳の下の表示7とExcelのLEN7) Wordの文字カウント・メールの文字数
Python 見えない文字が”…”の外にあるとSyntaxError(終了コード1・U+200Bと行番号が出る)。”…”の中の1個ではSyntaxErrorは出なかった “…”の中の1個での実行そのもの(2行目で先に止まったため)。貼るとSyntaxErrorになる、とは言い切れない
Excel Office 16のVLOOKUPの完全一致(FALSE) 近似一致・XLOOKUP
数える・消す命令 Windows 11のWindows PowerShell 5.1・クリップボードの文字だけ。数えるのはU+200B・U+200C・U+200D・U+2060・U+FEFF・U+00A0の6種 U+202Fなど、ほかの種類
メモ帳 メモ帳11.2607。ファイルを開いても、文字だけの形でクリップボードに入れた文をCtrl+Vで貼っても、見た目は同じ。下の文字数が見た目より多い ブラウザから直にコピーした文
消した後 消した後は0個、7文字から6文字。U+00A0は消さず普通の空白に置き換える 消した文をほかのアプリに貼った後の数。太字などの書式つきの文
AIの答え この記事の実験で数えたのは、私が作った文だけです。別に、普通の頼み5種をAI(ChatGPT・Claude・Gemini・Codex)に頼んだ返事を数えた測り直しでは、測れた31件(名簿の表を頼んだ返事も含む・頼みごとに各1〜2回)で見えない文字が混ざった物は0件でした。Geminiのブラウザ版で測れたのはPythonの頼み1種だけです。ブラウザ版のChatGPTとGemini(Flash 標準)でコードを頼み、コピーボタンで取った22回でも0個でした(2026年10月23日〜24日) 長い文章や表を貼り付けて頼んだ時・古い版のモデル・この記事の命令でAIの答えを数えた結果・ほかのAIのブラウザ版・スマホのアプリ
ページからの命令のコピー サイトの見た目を付けずに開いた本文の数える命令・消す命令の枠を、私のPCのChromeでトリプルクリックして選び、Ctrl+Cでコピーし、Windows TerminalのWindows PowerShellにCtrl+Vで貼った。貼っただけでは動かず、Enterで動いた。数える命令は「見えない文字: 0 個・全体 222 文字」(末尾の改行の分)、消す命令は「消しました」と出た サイトに載った後の見た目での選び方・Chrome以外のブラウザ・スマホ

Windowsの版(Windows 11 Home・25H2・OS ビルド 26200.9711)は、winverという画面で見た表示です。ほかは、私のPCで確かめた版で、Windows PowerShell 5.1・メモ帳 11.2607・Python 3.14.4・Excel(Office 16)です。

Windowsのバージョン情報の窓。Windows 11 Home・バージョン25H2・OSビルド26200.9711と表示され、使用者のメールアドレスと組織名は黒く塗ってある画面

最後に

今すぐできる最初の一歩は、数える命令と消す命令を順に貼ってEnterを押し(1回目の数えるは命令そのものを数えるので0個です)、そのあと調べたい文をコピーして、↑を2回押して数える行を出し、Enterを押すことです。

調べたい文をコピーしてから数え直した結果が0個なら、この6種類ではありません。この記事の命令が数えるのは、U+200B・U+200C・U+200D・U+2060・U+FEFF・U+00A0の6種類だけです。ほかの種類は調べていません。

この記事に出てくる言葉

分からない用語があれば参考にしてください。

この記事に出てくる言葉は11個です。言葉と意味を並べた表です。

言葉 意味
ゼロ幅スペース 文字として中に入っているのに、画面には見えない印のことです。
U+200B ゼロ幅スペースの文字に付いた番号です。
PowerShell Windowsに最初から入っている、文字で命令を出す道具です。
クリップボード コピーした文が一時的に入っている置き場です。
Enter 入れた命令を実行するキーです。
SyntaxError Pythonが、書き方がおかしいと見つけた時に出すエラーです。
VLOOKUP Excelで、表から名前などを探して値を返す関数です。
#N/A Excelで「見つからない」ことを示す表示です。
終了コード 終了コード1は、Pythonがエラーで止まったしるしです。
LEN 文字数を数えるExcelの関数です。
完全一致 探す名前と表の名前の中の文字が1つでも違えば当たらない探し方です(この記事で試したのは日本語の名前だけです)。

📬 新着記事をメールでお届けします

記事公開時にメールでお知らせします。週数本・無料・いつでも 1 クリックで解除できます。

uri uri

uri uriと申します。生成AI専門ブログ「生成AIニスト」運営者。 ChatGPT・Gemini・Claudeなど主要な生成AIを自分で契約し、毎日実際に触って検証しています。記事の手順やエラー対処は、必ず自分の画面で再現し、実機のスクリーンショットで確かめてから公開。料金や仕様は提供元の公式情報で裏取りし、いつ時点の情報かを明記します。「読んだ人が同じ画面で再現できること」を基準に書いています。