この記事でわかること
- ✓HTMLタグ・全角スペース・ゼロ幅スペースが代表的なコピペ混入ゴミ文字
- ✓ゼロ幅スペース(U+200B)などの不可視文字は見た目で判断できず検索や処理に影響する
- ✓テキスト整形ツールを使えばHTMLタグ・URL・余分なスペースをまとめて除去できる
WebサイトやPDFからテキストをコピーして貼り付けたとき、表示上は見えないのに余計な文字が混入することがあります。こうした「ゴミ文字」の正体と、取り除く方法を解説します。
ゴミ文字の主な種類
ゼロ幅文字(不可視文字)
ゼロ幅スペース(U+200B)やゼロ幅非結合子(U+200C)、ゼロ幅結合子(U+200D)などは、画面上では見えませんが文字列として存在します。Webページの文字装飾や、コピー追跡のトラッキング目的で意図的に埋め込まれていることがあります。検索や文字列比較で一致しないトラブルの原因になりやすい文字です。
制御文字
改行コード(CR/LF)の混在や、HTMLのタグが残ったもの、PDF特有のテキスト区切り文字が貼り付け後に残ることがあります。Windowsの改行(CRLF)とMac/Linuxの改行(LF)が混在すると、テキストエディタや処理系によって見え方が変わります。
HTMLエンティティ
WebページのHTMLソースをコピーした場合、 (ノーブレークスペース・U+00A0)や&(&)といったHTMLエンティティがそのまま混入することがあります。通常のスペースと見た目は同じでも、文字コードが異なるため処理時に問題が起きます。
全角スペース・余分な空白
PDFや一部のワープロソフトでは、レイアウト調整のために全角スペース(U+3000)が使われています。コピーするとそのままテキストに混入し、段落の冒頭に不可視の空白として残ります。
ゴミ文字が引き起こす問題
- 文字列検索・置換が正しくヒットしない
- プログラムの文字列処理でエラーや意図しない結果が出る
- CSVやデータベースへのインポート時に予期しない動作が起きる
- メールや文書の送付先でレイアウトが崩れる
ゴミ文字の取り除き方
テキスト整形ツールを使う
「HTMLタグを削除」「URLを削除」「各行の前後スペースを削除」などの機能を持つテキスト整形ツールを使うと、よくあるゴミ文字をまとめて除去できます。コピーした文章をツールに貼り付けてワンクリックで整形するのが最も手軽な方法です。
テキストエディタの「プレーンテキストとして貼り付け」
多くのエディタやWordでは「書式なし貼り付け(Ctrl+Shift+V)」が使えます。書式情報を除いてテキストだけを貼り付けるため、HTML由来のゴミ文字を防げます。
正規表現での一括除去
テキストエディタやプログラムで正規表現が使える場合、[\x00-\x08\x0B\x0C\x0E-\x1F\x7F] などのパターンで制御文字を除去できます。ゼロ幅文字は [\u200B-\u200D\uFEFF] でマッチさせて削除できます。
コピペ後のチェックを習慣に
Webやドキュメントからテキストをコピーして使う場合は、そのまま使わずに一度テキスト整形ツールや「プレーンテキスト貼り付け」を経由させるのが安全です。特に業務で使用するデータやプログラムに組み込む文字列は、ゴミ文字の有無を事前に確認することでトラブルを未然に防げます。
