Удаление символов «NUL»


96

У меня в блокноте есть такие символы ++

npp снимок экрана с NUL

Когда я пытаюсь скопировать всю строку, я фактически копирую все до "NUL":

File:1

Что я хочу сделать, так это заменить эти null, чтобы они были ничем, чтобы я мог скопировать всю свою строку. Может быть, есть какое-нибудь ключевое слово, которое скажет notepad ++ (или любой другой программе, которая может помочь) заменить эти символы? Когда я выбираю его, используйте правый щелчок, а затем «очистить», его больше нет, но я не хочу делать это один за другим.

Меня не волнует устранение причины этой проблемы, а только эффект (NUL)

Ответы:


107

Это могло бы помочь, я использовал такие файлы: http://security102.blogspot.ru/2010/04/findreplace-of-nul-objects-in-notepad.html

В основном вам нужно заменить символы \ x00 на регулярные выражения


Да, это то, что я искал. Большое спасибо :)
user2618929

7
Обратите внимание, вы должны попробовать «\ x00», «\ 00» или «\ 0». У меня \ x00 и \ 00 не работали. Мне нужно было использовать \ 0 для символа замены.
Hooplator15,

1
@JohnAugust большое вам спасибо за это. \ x00 продолжал находить «нормальные» пробелы, а также символы NUL.
Steffen Winkler

Thx хотел найти в файле .dmp блок многострочного текста. однако, к сожалению, блокнот для меня разбился, вероятно, из-за размера дампа
Mellester 06

38

Щелкните Поиск -> Заменить -> Найти: \ 0 Заменить на: "пустой". Режим поиска: Расширенный -> Заменить все.


Для чего продлен ??
Rimalonfire

@rimiro расширен в том смысле, что можно сопоставить специально экранированные символы (основные метасимволы регулярных выражений, такие как \ n и так далее), а не просто набранные символы.
twobob

9

У меня была такая же проблема. Вышесказанное направило меня на правильный путь, но в моем случае было не совсем правильно. То, что работало, было тесно связано:

  • Откройте свой файл в Блокноте ++
  • Введите Control-A (выбрать все)
  • Введите Control-H (заменить)
  • В типе "Найти" \x00
  • В поле "Заменить на" оставьте ПУСТОЙ
  • В «Режиме поиска» выбрано «Расширенный»
  • Затем нажмите «Заменить все».

5

Попробуйте найти и заменить. введите \ x00 в текстовом поле «Найти» и установите флажок «Регулярное выражение». Оставьте поле «Заменить» пустым и нажмите «Заменить все». клавиша быстрого доступа для поиска и замены - ctrl + H.


6
найти с помощью \ x00. Вам может потребоваться проверить параметр Регулярное выражение.
Миллер

Вы должны использовать регулярное выражение, этот ответ неверен, так как, очевидно, вы можете скопировать специальный символ точно так же
Махиддин

Я давал ответ на вопрос SO, он спрашивает в блокноте ++, а не в блокноте. Я не понимаю, почему люди голосуют за мой ответ, а другие люди за ответ Алекса Шумилова.
Miller

2

Я пробовал использовать \ x00, и у меня не получалось при использовании C # и Regex. Я добился успеха со следующим:

//The hexidecimal 0x0 is the null character  
mystring.Contains(Convert.ToChar(0x0).ToString() );  

// This will replace the character
mystring = mystring.Replace(Convert.ToChar(0x0).ToString(), "");  

1
При чем здесь Notepad ++?
ChrisWue,

ОП спросил о блокноте ++ или любой другой программе, которая может помочь. Не могли бы вы обновить ответ дополнительным кодом, чтобы он был завершен, чтобы он мог помочь другим новичкам в .Net (т.е. читать текстовый файл с диска, заменять нулевые символы, сохранять обратно в текстовый файл, я имею в виду что-то вроде этого , и инструкции как запустить код C # без VS, например, просто используя csc.exe).
омегастрипы

2

Откройте Notepad ++.
Выберите «Заменить» (Ctrl / H).
Найдите, что: \ x00
Заменить на:
нажмите переключатель «Регулярное выражение»
Нажмите «Заменить все»


-1

Выделите один нулевой символ, перейдите к поиску и замене - обычно он автоматически вставляет выделенный текст в поле поиска. Введите пробел в поле замены или оставьте его пустым.


8
Это не работает с символом NUL в Notepad ++. Он работает со многими другими специальными символами ASCII, такими как BEL, но NUL можно найти только с помощью расширенных escape-кодов или RegEx.
Ayelis
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.