Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20162|Resposta: 2

[Resolvido] Solução StreamReader para caracteres distorsionados ao ler arquivos

[Copiar link]
Publicado em 13/04/2018 16:11:20 | | |
Hoje, quando eu estava criando um diálogo de Abrir Arquivo, precisei ler o arquivo aberto e exibi-lo na RichTextBox do formulário. No entanto, ao exibir o arquivo, foi constatado que a string chinesa exibida estava distorcida. As partes principais do código são as seguintes:
No começo, também achei que havia um problema com a codificação de caracteres, então, quando inicializei o StreamReader, adicionei os parâmetros de codificação de caracteres a ele, e adicionei várias vezes: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, tentei todos os esquemas de codificação que podiam ser adicionados, mas o resultado não foi bom.


Originalmente, o sistema operacional do Windows 2000 e posteriores usava Unicode para processamento de arquivos, então . A codificação padrão de arquivos para .Net também é Unicode. A menos que especificado de outra forma, a codificação padrão do StreamReader é Unicode, não a página de código ANSI do sistema atual. No entanto, a maioria dos documentos ainda está armazenada em codificação ANSI, e o texto chinês usa gb2312, o que causa caracteres chineses distorcidos, o que significa que o formato de codificação deve ser especificado ao ler o texto.


A solução alternativa é: System.Text.Encoding.Default informa ao StreamReader a codificação do sistema operacional atual.






Anterior:.net/c# Comparação de serialização de XML, Json, Hessian, Protocol Buffers
Próximo:.net/c# Use o Costura.Fody para empacotar a DLL no EXE
 Senhorio| Publicado em 13/04/2018 17:11:39 |
Este post foi editado pela última vez por QWERTYU em 13-04-2018 às 17:18

Se ainda não funcionar, o servidor pode ter comprimido os dados, pegando o gzip como exemplo, você precisa descomprimir os dados primeiro.

Publicado em 19/04/2018 13:31:02 |
Se o conteúdo da web for comprimido com gzip e o conteúdo estiver distorcido, existem duas soluções

Primeira solução:

//
        Resumo:
        Compre ou defina o tipo de descompressão usado.
        //
        Resultados do retorno:
        Um objeto T:System.Net.DecompressionMethods que indica o tipo de descompressão utilizado.
        //
        Anomalia:
        T:System.InválidaOperaçãoExceção:
        O estado atual do objeto não permite que essa propriedade seja definida.
        Public DecompressionMethods Automatic Decompression { get; set; }
A seguinte linha de código é feita, as mudanças são muito pequenas!!




Segunda solução:



Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com