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.