Como impedir o Notepad ++ de substituir traços por caracteres chineses?

2

Recentemente, comecei a usar o Notepad ++. Porém, quando abro um arquivo txt contendo traços, esses traços são exibidos como caracteres chineses.


Aqui está uma captura de tela de um arquivo de teste aberto no Bloco de Notas:

image1


E aqui está uma captura de tela do mesmo arquivo aberta no Notepad ++.

image2


Alguém pode explicar esse comportamento estranho e explicar como evitá-lo?
Obrigado!

76987
fonte
Sugiro que você queira verificar suas configurações de codificação. Dito isso, mesmo brincando com eles, não consegui reproduzir o problema com traços Em verdade (Alt + 0151 no Windows). Meu palpite é que é externo (configurações de fonte ou sistema), talvez?
Anaksunaman 01/07/19
@Anaksunaman Minhas configurações são as configurações de instalação padrão. Não tenho idéia de quais fatores "externos" poderiam estar funcionando. Isso acontece apenas no Notepad ++.
76987
@ 76987 Fui capaz de emular o problema, assim como você explica a criação de um documento com o Alt + 0151 e, quando abri no Notepad ++, parecia semelhante à sua captura de tela. Provavelmente, é assim que o Notepad ++ interpreta esse caractere, mas se você acessar as opções de codificação e alterá-lo para outros (por exemplo, ANSI), verá o caractere interpretado mudar para algo diferente. Eu acho que é simples como o software editor de texto interpreta os caracteres.
Pimp Juice IT
@ McDonald's Ao alterar a opção Codificação> Conjuntos de caracteres para Windows-1252, pude fazer os traços aparecerem. No entanto, quando eu fechar e reabrir o arquivo txt, os caracteres chineses terão retornado. Tentei alterar as configurações de codificação para novos documentos nas Preferências, mas isso não ajudou. Portanto, a solução parece ser uma solução meramente temporária.
76987
@ 76987 - Para que você possa alterar o padrão no Notepad ++ para sempre usar a codificação necessária para mostrar os caracteres, por exemplo, veja a captura de tela aqui ... mas vá para Settings| Preferences| New Document| e selecione a opção na seção Codificação que atende às suas necessidades. Na próxima vez que você fechar e abrir o documento, a nova codificação selecionada deverá ser o padrão do Notepad ++.
Pimp Juice IT

Respostas:

3

Eu posso reproduzir o problema.

Motivo: detecção automática de codificação de arquivo.

Seu arquivo é codificado na tabela de códigos padrão de 8 bits, ou seja, Windows-1252 (conforme indicado no seu comentário abaixo da pergunta), uma das codificações ANSI de 8 bits, com 256 caracteres possíveis. Mas parece que o Notepad ++ está interpretando o arquivo que contém traços como se estivesse na codificação Shift-JIS . (Essa codificação pode ser vista na barra de status, no canto inferior direito da janela principal do Notepad ++, quando o problema ocorre.) Portanto, o Notepad ++ interpreta caracteres com um valor ASCII maior que 127 encontrado no arquivo como caracteres japoneses.

Solução: Altere a codificação do seu arquivo para UTF-8 (ou outra codificação adequada).

  1. Abra seu arquivo.
  2. Usando o menu Codificação> Conjunto de caracteres> Europa Ocidental> Windows-1252, alterne para a codificação correta, onde os caracteres aparecem conforme o esperado.
  3. Usando o menu Codificação> Converter em UTF-8 . O indicador da barra de status no canto inferior direito agora mostra UTF-8-BOM .
  4. Salve seu arquivo.

Talvez você possa contestar que não deseja UTF-8, mas não indicou essa limitação na pergunta e, geralmente, não há razão para não usá-la. Ele manterá todos os caracteres estáveis, sem problemas de aparência que você encontrou. A limitação pode ser processada em aplicativos / ferramentas mais antigos. Então você precisa seguir a codificação ANSI que eles exigem.

Informação adicional:

O UTF-8 é totalmente suportado pelo Bloco de Notas, fornecido com o Windows, portanto você não terá problemas aqui. No entanto, eu recomendo usar arquivos UTF-8 com BOM . O UTF-8 sem BOM também funciona, mas quando a marca está ausente, os editores confiam na detecção automática de formato e, como você pode ver, às vezes pode dar errado. Vi que alguns programas mais antigos reclamavam do marcador da lista de materiais, como "Caracteres inválidos no início do arquivo". e depois converti meu arquivo em UTF-8 sem BOM.

Unicodeo padrão suporta mais de 256 pontos de código: o número total suportado é 1.114.112. Segundo a Wikipedia, esse espaço é atualmente usado por 136.755 caracteres, abrangendo 139 scripts modernos e históricos, além de vários conjuntos de símbolos. O restante é reservado para uso futuro. Como você pode ver, Unicode é a codificação que cobre a maioria dos caracteres mais usados ​​no mundo, para que você nunca caia nos problemas das páginas de códigos novamente. Você não precisa se ater ao UTF-8, o Unicode também pode ser representado como UTF-16, UTF-32 ou em várias representações mais exóticas (UTF-7, UTF-1 e outras) ou em formas não transitórias como UCS- 4) Nelas, o UTF-8 é mais suportado, por isso recomendo este. Sem o uso de caracteres acima do ponto de código 127, ele é compatível com ASCII (exceto a marca BOM,

Se algum programa precisar de uma página de código sua, selecione a página de código 65001 para UTF-8.

Se você deseja explorar todos os caracteres do Unicode, incluindo pesquisa ou filtragem por nome ou outras propriedades ou identificação de caracteres desconhecidos, use, por exemplo, BabelMap .

miroxlav
fonte