Removendo caracteres “NUL”

94

Eu tenho personagens assim no meu notepad ++

captura de tela npp de NULs

Quando estou tentando copiar a linha inteira, na verdade estou copiando tudo até "NUL":

File:1

O que eu quero fazer, é substituir esses nulos, por nada, para que eu possa copiar minha linha inteira. Talvez haja alguma palavra-chave que diga ao notepad ++ (ou qualquer outro programa que possa ajudar) para substituir esses caracteres? Quando estou selecionando-o, use o botão direito e, em seguida, "limpar", acabou - mas não quero fazer isso um por um.

Eu não me importo em remover a causa desse problema, apenas o efeito (NULs)

user2618929
fonte

Respostas:

105

Isso pode ajudar, eu costumava arquivar meus arquivos assim: http://security102.blogspot.ru/2010/04/findreplace-of-nul-objects-in-notepad.html

Basicamente, você precisa substituir \ x00 caracteres por expressões regulares

Aleksandr Shumilov
fonte
Sim, era isso que eu procurava. Muito obrigado :)
user2618929
7
Observe que você deve tentar "\ x00", "\ 00" ou "\ 0". Para mim, \ x00 e \ 00 não funcionaram. Eu precisava usar \ 0 para substituir o caractere.
João
1
@JohnAugust muito obrigado por isso. \ x00 continuou encontrando espaços 'normais', bem como os caracteres NUL.
Steffen Winkler
Thx queria pesquisar um arquivo .dmp por um bloco de texto de várias linhas. no entanto, infelizmente, o bloco de notas travou para mim, provavelmente por causa do tamanho do depósito
Mellester
38

Clique em Pesquisar -> Substituir -> Encontrar: \ 0 Substituir por: "vazio" Modo de pesquisa: Estendido -> Substituir tudo

user4247816
fonte
Para que serve o estendido ??
rimalonfire
@rimiro estendido no sentido de que caracteres especialmente escapados (metacaracteres de expressão regular básica como \ n et cetera) podem ser comparados em vez de simplesmente os caracteres digitados.
twobob de
9

Eu estava tendo o mesmo problema. O que foi dito acima me colocou no caminho certo, mas não estava totalmente correto no meu caso. O que funcionou estava intimamente relacionado:

  • Abra seu arquivo no Notepad ++
  • Digite Control-A (selecione tudo)
  • Digite Control-H (substituir)
  • Em 'Find What' digite \x00
  • Em 'Substituir por', deixe EM BRANCO
  • Em 'Modo de Pesquisa' Selecionado 'Estendido'
  • Em seguida, clique em 'Substituir tudo'
user914945
fonte
5

Tente localizar e substituir. digite \ x00 na caixa de texto Localizar, marque a opção Expressão regular. Deixe a caixa de texto Substituir em branco e clique em substituir tudo. A tecla de atalho para localizar e substituir é ctrl + H.

Moleiro
fonte
6
encontre com \ x00. Pode ser necessário marcar a opção Expressão regular.
Miller
Você tem que usar uma expressão regular, esta resposta está errada, pois obviamente você pode copiar um caractere especial assim
mahieddine
Eu estava dando a resposta de acordo com a pergunta do SO, ele está perguntando no notepad ++ notepad. Não sei por que as pessoas votam contra minha resposta e outras pessoas estão aprovando a resposta de AlexShumilov.
Miller
2

Tentei usar o \ x00 e não funcionou para mim ao usar C # e Regex. Tive sucesso com o seguinte:

//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(), "");  
Lee Harris
fonte
O que isso tem a ver com o Notepad ++?
ChrisWue
2

Abra o Notepad ++
Selecione Substituir (Ctrl / H)
Encontre o que: \ x00
Substituir por:
Clique no botão de rádio Expressão regular
Clique em Substituir Tudo

slopfunkdust
fonte
-1

Destaque um único caractere nulo, vá para localizar e substituir - geralmente insere automaticamente o texto destacado na caixa de localização. Insira um espaço ou deixe em branco a caixa de substituição.

Gavin
fonte
8
Isso não funciona com o caractere NUL no Notepad ++. Ele funciona com muitos outros caracteres especiais ASCII, como BEL, mas NUL só pode ser encontrado usando códigos de escape estendidos ou RegEx.
Ayelis