テキストエディターに2つの「同一の」5文字の文字列があります(Sublime Text2 | Notepad ++)。
最初の文字列はGmailからコピーされ、2番目の文字列は手で入力しただけです。
最初の文字列を選択すると、6文字が選択されています。 2番目の文字列を選択すると、5文字が選択されています。
Sublime Text2で両方の文字列を同時に選択すると、最初の文字列の後に余分なスペースが選択されていることがわかります。
Notepad ++で「すべての文字を表示」を有効にしましたが、最初の文字列と2番目の文字列の間で明らかに異なるものは何も表示されません。
ファイルはUTF-8エンコーディングを使用します。また、この問題は両方のテキストエディタで一貫しています。
誰かが見えない余分な文字を削除する方法とそれがどこから来たのかアドバイスしてくれる?
取得したANSI文字列gffk9​
に基づいて、テキストに存在する追加の文字は ゼロ幅スペース のようです。ゼロ幅スペースは、テキストに実際にスペースが含まれていない場合に、テキストを表示するプログラムが行を「安全に」改行できる場所を示すために使用されます。 Gmailからコピーしたため、HTMLを使用してテキストをフォーマットしたメールから送信された可能性があります。
余分な文字を削除する方法は、システムによって異なります。 この16進ビューアプラグイン Sublime Textはいくつかの検索機能を提供するので有望に見えますが、16進文字列または置換による検索については明示的に言及されていません。 Notepad ++を使用しているので、Windowsを使用していると思います。 XVI32 を使用すると、ファイル内の16進文字列を検索して置換できます。
参考までに、Unixのような環境の場合、sed
を使用すると、ファイル内の16進文字列を この投稿で説明されているプロセス を使用して置き換えることができます。
いずれの場合でも、検索して置換しようとしている16進文字列はE2 80 8B
になります。
これは、16進エディタを使用せずに崇高な3で私のために働きました。
通常の検索と置換を使用しています。
/ *そもそもそこにUnicode文字を取得するには、OSのメソッドを使用します。
また、charが崇高な場所にあることがわかっている場合は、shift +矢印を使用して選択できます。カーソルが移動しないため、それがわかったので、少し太くなります:-)