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)

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


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


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'

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.


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

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


-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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.