|
|
Pubblicato su 13/04/2018 16:11:20
|
|
|

Oggi, mentre stavo creando una finestra di dialogo Apri File OpenFileDialog, ho dovuto leggere il file aperto e visualizzarlo nella RichTextBox nel modulo. Tuttavia, visualizzando il file, si è scoperto che la stringa cinese mostrata era distorta. Le parti chiave del codice sono le seguenti:
All'inizio pensavo anche che ci fosse un problema con la codifica dei caratteri, quindi quando ho inizializzato StreamReader, ho aggiunto i parametri di codifica dei caratteri, e li ho aggiunti più volte: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, ho provato tutti gli schemi di codifica possibili, ma il risultato non è stato buono.
Originariamente, il sistema operativo da Windows 2000 e successivamente utilizzava Unicode per l'elaborazione dei file, quindi . La codifica predefinita dei file per .Net è anch'essa Unicode. Salvo diversa specificazione, la codifica predefinita di StreamReader è Unicode, non la pagina di codici ANSI del sistema corrente. Tuttavia, la maggior parte dei documenti è ancora memorizzata in codifica ANSI, e il testo cinese utilizza gb2312, il che causa caratteri cinesi distorti, il che significa che il formato di codifica deve essere specificato durante la lettura del testo.
La soluzione alternativa è: System.Text.Encoding.Default indica al StreamReader la codifica del sistema operativo corrente.
|
Precedente:Confronto della serializzazione di XML, Json, Hessian, Protocol BuffersProssimo:.net/c# Usa Costura.Fody per impacchettare la DLL nell'EXE
|