Notepad ++ Ciąg zastępujący z NUL Skraca po NUL

0

Za pomocą Notepad ++ próbuję zamienić ciąg znaków (w pliku binarnym ) w następujący sposób:

A NULp NULp NULl NULeNUL

Z innym ciągiem takim jak ten:

O NULr NULa NULn NULg NULeNUL

Więc...

Korzystając z następującego formatu wyrażenia regularnego wyszukiwania, N ++ stwierdza, że ​​wszystkie wystąpienia tekstu docelowego są w porządku:

A \x00p \x00p \x00l \x00e\x00

Ale przy użyciu następującego ciągu zastępującego, takiego jak ten:

O \x00r \x00a \x00n \x00g \x00e\x00

Zastępuje wszystkie znalezione wystąpienia:

ONUL

...i to wszystko. Wszystko w ciągu zastępującym po pierwszym NULjest ignorowane. Poszukałem go, przejrzałem wiki N ++ i być może tęskniłem, ale nie widzę nic, co by wyjaśniało, dlaczego tak się dzieje. Wydaje się, że jest to kwestia „zakończenia zerowego”, ale czy wyszukiwanie i zamiana nie powinny być na tyle sprytne, aby sobie z tym poradzić? Czy używam tego źle?

David Mancini
źródło
1
Wygląda na to, że edytujesz plik Unicode, ale jest on odczytywany jako ASCII. Czy brakuje inicjału \xFF\xFE? Jeśli jest otwarty z poprawnym kodowaniem, a następnie wyszukiwania i zamienne struny będzie tylko Applei Orangewszystko powinno działać normalnie.
AFH
Nie, to konkretnie plik binarny *.accdb.
David Mancini,
Notepad ++ nie został zaprojektowany jako edytor plików binarnych. Ma jednak wtyczkę edytora szesnastkowego. Zobacz Jak zainstalować wtyczkę Notepad ++ Hex-Editor?
DavidPostill
2
Plik, który edytujesz, jest plikiem bazy danych Access i nie powinien być edytowany za pomocą niczego innego (lub kompatybilnego oprogramowania); w przeciwnym razie możesz uszkodzić strukturę bazy danych, zwłaszcza, że ​​zmieniasz długość łańcucha. To powiedziawszy, nie byłem w stanie znaleźć ani utworzyć danych Unicode, których NP ++ nie rozpoznał jako takich. Jednak NotePadQQ (port linuksowy NP ++) może zostać zmuszony do zaakceptowania pliku tekstowego Unicode jako ASCII, i mogłem odtworzyć twoje ustalenia, ale stwierdziłem, że zadziałałoby tak, jak chcesz, jeśli wybiorę Search with special characterszamiast z wyrażeniami regularnymi.
AFH
@AFH W rzeczywistości próbuję zastąpić ciąg o takiej samej długości przechowywany jako właściwość bazy danych, powyższy był tylko przykładem. Ostateczne pytanie nie dotyczyło sugerowanego problemu X <> Y, ponieważ chciałem wiedzieć, dlaczego Notepad ++ ignoruje znaki zastępujące po pierwszym „ \x00.” To, że pracuję z accdb, nie ma znaczenia dla pytania.
David Mancini,