|
|
Publisert på 13.04.2018 16:11:20
|
|
|

I dag, da jeg laget en åpen fil-dialog OpenFileDialog, måtte jeg lese den åpne filen og vise den i RichTextBox i formen. Men da filen ble vist, ble det oppdaget at den viste kinesiske strengen var forvrengt. De viktigste delene av koden er som følger:
Først trodde jeg også at det var et problem med tegnkodingen, så da jeg initialiserte StreamReader, la jeg til tegnkodingsparametrene, og la det til flere ganger, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, jeg prøvde alle kodingsskjemaer som kunne legges til, men resultatet var ikke bra.
Opprinnelig brukte operativsystemet fra Windows 2000 og senere Unicode for filbehandling, så . Standard filkoding for .Net er også Unicode. Med mindre annet er spesifisert, er standardkodingen i StreamReader Unicode, ikke det nåværende systemets ANSI-kodeside. De fleste dokumentene er imidlertid fortsatt lagret i ANSI-koding, og kinesisk tekst bruker gb2312, noe som forårsaker kinesiske utydelige tegn, noe som betyr at kodingsformatet må spesifiseres når teksten leses.
Løsningen er: System.Text.Encoding.Default forteller StreamReader kodingen av det nåværende operativsystemet.
|
Foregående:.net/c# Xml, Json, Hessian, Protocol Buffers serialiseringssammenligningNeste:.net/c# Bruk Costura.Fody for å pakke DLL-en inn i EXE-en
|