Usuwanie znaków „NUL”


95

Mam takie znaki w moim notatniku ++

zrzut ekranu npp z wartościami NUL

Kiedy próbuję skopiować całą linię, w rzeczywistości kopiuję wszystko do „NUL”:

File:1

To, co chcę zrobić, to zamienić te null, aby były niczym, więc mogę skopiować całą linię. Może istnieje słowo kluczowe, które powie notatnikowi ++ (lub jakiemukolwiek innemu programowi, który może pomóc), aby zastąpić te znaki? Kiedy ją wybieram, użyj prawego przycisku myszy, a następnie „wyczyść”, zniknął - ale nie chcę tego robić pojedynczo.

Nie obchodzi mnie usuwanie przyczyny tego problemu, tylko efekt (NUL)

Odpowiedzi:


106

To może pomóc, kiedyś zapisywałem moje pliki w ten sposób: http://security102.blogspot.ru/2010/04/findreplace-of-nul-objects-in-notepad.html

Zasadniczo musisz zamienić znaki \ x00 na wyrażenia regularne


Tak, właśnie tego szukałem.
Wielkie

7
Pamiętaj, że powinieneś spróbować „\ x00”, „\ 00” lub „\ 0”. U mnie \ x00 i \ 00 nie działały. Musiałem użyć \ 0 jako znaku zamiany.
Hooplator15

1
@JohnAugust bardzo Ci za to dziękuję. \ x00 wciąż znajdował „normalne” spacje, a także znaki NUL.
Steffen Winkler,

Thx chciał przeszukać plik .dmp pod kątem bloku wielowierszowego tekstu. jednak niestety notatnik się
zawiesił,

38

Kliknij Szukaj -> Zamień -> Znajdź co: \ 0 Zamień na: „pusty” Tryb wyszukiwania: Rozszerzony -> Zastąp wszystko


Na co jest przedłużony?
rimalonfire

@rimiro rozszerzone w tym sensie, że specjalne znaki ucieczki (podstawowe metaznaki wyrażeń regularnych, takie jak \ n i tak dalej) mogą być dopasowywane zamiast po prostu wpisywanych znaków.
dwa razy

9

Miałem ten sam problem. Powyższe postawiło mnie na właściwej drodze, ale w moim przypadku nie było do końca poprawne. To, co działało, było ściśle powiązane:

  • Otwórz plik w Notepad ++
  • Wpisz Control-A (wybierz wszystkie)
  • Typ Control-H (wymień)
  • W polu „Znajdź co” \x00
  • W „Zamień na” pozostaw PUSTE
  • W „Trybie wyszukiwania” wybrano „Rozszerzone”
  • Następnie kliknij „Zamień wszystko”

5

Spróbuj znaleźć i zamienić. wpisz \ x00 w polu tekstowym Znajdź, zaznacz opcję Wyrażenie regularne. Pozostaw pole tekstowe Zamień puste i kliknij przycisk Zamień wszystko. klawisz skrótu do znajdowania i zamieniania to ctrl + H.


6
znajdź za pomocą \ x00. Może być konieczne zaznaczenie opcji Wyrażenie regularne.
Miller

Musisz użyć wyrażenia regularnego, ta odpowiedź jest błędna, ponieważ oczywiście możesz skopiować poza specjalny znak w ten sposób
mahieddine

Udzielałem odpowiedzi jak na pytanie SO, on pyta na notatniku ++, a nie notatniku. Nie wiem, dlaczego ludzie odrzucają moją odpowiedź, a inni popierają odpowiedź Alexa Shumilova.
Miller

2

Próbowałem użyć \ x00 i nie działało to dla mnie podczas używania C # i Regex. Odniosłem sukces w następujących przypadkach:

//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
Co to ma wspólnego z Notepad ++?
ChrisWue

OP zapytał o Notatnika ++ lub inny program, który mógłby pomóc. Czy mógłbyś zaktualizować odpowiedź z jakiegoś dodatkowego kodu, aby zakończyć tak, że może to pomóc innym newbie w .NET (czyli odczytać plik tekstowy z napędu, wymień nul znaków, Zapisz plecami do pliku tekstowego, mam na myśli coś takiego jak ten , i instrukcje jak uruchomić kod C # bez VS, np. używając tylko csc.exe).
omegastripes

2

Otwórz Notepad ++
Wybierz Zastąp (Ctrl / H)
Znajdź co: \ x00
Zamień na:
Kliknij przycisk radiowy Wyrażenie regularne
Kliknij Zastąp wszystko


-1

Podświetl pojedynczy znak null, goto find replace - zwykle automatycznie wstawia podświetlony tekst do pola wyszukiwania. Wpisz spację lub pozostaw puste pole zamiany.


8
Nie działa to ze znakiem NUL w Notepad ++. Działa z wieloma innymi znakami specjalnymi ASCII, takimi jak BEL, ale NUL można znaleźć tylko za pomocą rozszerzonych kodów ucieczki lub wyrażenia regularnego.
Ayelis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.