|
|
Publicado en 13/4/2018 16:11:20
|
|
|

Hoy, cuando estaba creando un diálogo de Abrir ArchivoAbierto, necesitaba leer el archivo abierto y mostrarlo en el RichTextBox del formulario. Sin embargo, al mostrar el archivo, se encontró que la cadena china mostrada estaba distorsionada. Las partes clave del código son las siguientes:
Al principio, también pensé que había un problema con la codificación de caracteres, así que cuando inicialicé StreamReader, añadí los parámetros de codificación de caracteres y los añadí varias veces: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, probé todos los esquemas de codificación que se podían añadir, pero el resultado no fue bueno.
Originalmente, el sistema operativo desde Windows 2000 y posteriores usaba Unicode para el procesamiento de archivos, por lo que . La codificación predeterminada de archivos para .Net también es Unicode. Salvo que se especifique lo contrario, la codificación predeterminada de StreamReader es Unicode, no la página de códigos ANSI del sistema actual. Sin embargo, la mayoría de los documentos siguen almacenándose en codificación ANSI, y el texto chino utiliza gb2312, lo que provoca caracteres distorsionados en chino, lo que significa que el formato de codificación debe especificarse al leer el texto.
La solución alternativa es: System.Text.Encoding.Default indica al StreamReader la codificación del sistema operativo actual.
|
Anterior:Comparación de serialización de XML, Json, Hessian, búferes de protocoloPróximo:.net/c# Usa Costura.Fody para empaquetar la DLL en el EXE
|