Видалення символів “NUL”


94

У мене є такі символи в моєму блокноті ++

npp скріншот NUL

Коли я намагаюся скопіювати цілий рядок, я фактично копіюю все до "NUL":

File:1

Що я хочу зробити, це замінити ці значення null, щоб бути нічим, щоб я міг скопіювати весь мій рядок. Можливо, є якесь ключове слово, яке вкаже notepad ++ (або будь-яку іншу програму, яка може допомогти) замінити ці символи? Коли я вибираю його, використовуйте правою кнопкою миші, а потім "очистити", його вже немає, але я не хочу робити це по одному.

Мені байдуже усунути причину цієї проблеми, а лише результат (NUL)

Відповіді:


105

Це може допомогти, я раніше фіксував свої файли так: 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 для блоку багаторядкового тексту. однак, на жаль, блокнот розбився для мене з-за розміру сміттєзвалища
Меллестер

38

Клацніть Пошук -> Замінити -> Знайти що: \ 0 Замінити на: "порожній" Режим пошуку: Розширений -> Замінити все


Для чого розширений ??
rimalonfire

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

9

У мене була така сама проблема. Вищесказане поставило мене на правильний шлях, але в моєму випадку це було не зовсім правильно. Що працювало, було тісно пов’язане:

  • Відкрийте файл у Notepad ++
  • Введіть Control-A (виберіть усі)
  • Тип Control-H (замінити)
  • У полі "Знайти що" введіть \x00
  • У полі "Замінити на" залиште ПУСТО
  • У "Режимі пошуку" вибрано "Розширений"
  • Потім натисніть "Замінити все"

5

Спробуйте знайти та замінити. введіть \ x00 у текстовому полі "Знайти", встановіть прапорець Регулярний вираз. Залиште Замінити текстове поле порожнім і натисніть на замінити все. комбінація клавіш для пошуку та заміни - це ctrl + H.


6
знайти за допомогою \ x00. Можливо, вам доведеться позначити параметр Регулярний вираз.
Міллер

Ви повинні використовувати регулярний вираз, ця відповідь неправильна, оскільки, очевидно, ви можете скопіювати мимо спеціального символу просто так
mahieddine

Я давав відповідь на запитання SO, він запитує на notepad ++, а не notepad. Я не знаю, чому люди голосують проти моєї відповіді, а інші люди підтримують відповідь Алекса Шумілова.
Міллер

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(), "");  

Яке відношення це має до Notepad ++?
ChrisWue

2

Відкрийте Блокнот ++
Виберіть Замінити (Ctrl / H)
Знайдіть що: \ x00
Замінити на:
Клацніть на перемикач Регулярний вираз
Клацніть на Замінити все


-1

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


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