Как удалить лишний невидимый символ в текстовом редакторе

У меня есть две "идентичные" 5-символьные строки в моих текстовых редакторах (Sublime Text2 / Notepad++).

первая строка была скопирована из Gmail, а вторая просто набрана вручную.

когда я выбираю первую строку, я вижу 6 выбранных символов.
Когда я выбираю вторую строку, я вижу 5 выбранных символов.

enter image description here

когда я выбираю обе строки в Sublime Text2 одновременно, я вижу, что есть дополнительный пробел, выбранный после первой строки.

enter image description here

Я включил "отображать все символы" в Notepad++, но не вижу ничего явно различаются между первой и второй строкой.

файл использует кодировку UTF-8. И проблема согласована в обоих текстовых редакторах.

кто-нибудь может посоветовать, как удалить невидимый символ и откуда он взялся?

29
задан BustedSanta
19.02.2023 20:07 Количество просмотров материала 3054
Распечатать страницу

2 ответа

на основе строки ANSI, что вы получили,gffk9​, похоже, что дополнительный символ, присутствующий в тексте, является пробел нулевой ширины. Пробелы нулевой ширины используются, чтобы указать, где программа, отображающая текст, может "безопасно" разорвать строку, когда текст фактически не содержит пробелов. Так как вы скопировали его из Gmail, кажется вероятным, что это пришло из письма, которое использовало HTML для форматирования текста.

как вы можете пойти об удалении лишний символ может зависит от вашей системы. этот плагин hex viewer для Sublime Text выглядит многообещающе, поскольку он предлагает некоторые возможности поиска, но в нем явно не упоминается поиск по шестнадцатеричной строке или замене. Поскольку вы используете Notepad++, я предполагаю, что вы находитесь в Windows. XVI32 позволит вам искать и заменять шестнадцатеричные строки в файле.

Для справки, если вы находитесь в Unix-подобной среде, sed позволит вам заменить вхождения шестнадцатеричной строки в файл используя процесс описанный в этом посте.

в любом случае, шестнадцатеричная строка, которую вы хотели бы найти и заменить, будет E2 80 8B.

3
отвечен fakedad 2023-02-21 03:55

это работало для меня в sublime 3 без использования шестнадцатеричного редактора.

Использование обычного поиска и замены.

  • открыть диалоговое окно замены (Ctr + H)
  • введите символ Unicode U200B в поле "найти что" (*советы см. ниже)
  • оставьте поле "заменить на" пустым
  • Заменить Все

/ / * чтобы получить символ Юникода там, в первую очередь, используйте вы метод ОС.

  • Windows-удерживая Alt введите Код Юникода
  • Linux-Ctrl + Shift + u, не отпуская Ctrl и shift, введите код
  • Sublime под Linux-Что касается Linux, за исключением Ctrl + Alt +Shift. (Sublime 3 связывает Ctrl + Shift + u для 'мягкого повтора')

кроме того, если вы знаете, где находится символ в sublime, вы можете просто выбрать его с shift + Стрелка, вы будете знать, что вы получили его, потому что курсор не движется, он просто становится немного толще :-)

Unicode композиция в Возвышенный Текст

2
отвечен Mbo42 2023-02-21 06:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх