|
|
Objavljeno na 13. 04. 2018 16:11:20
|
|
|

Danes, ko sem ustvarjal pogovorno okno Odpri datoteko OpenFileDialog, sem moral prebrati odprto datoteko in jo prikazati v RichTextBox v obrazcu. Vendar pa je bilo ob prikazu datoteke ugotovljeno, da je prikazani kitajski niz popačen. Ključni deli kodeksa so naslednji:
Sprva sem tudi mislil, da je težava s kodiranjem znakov, zato sem ob inicializaciji StreamReaderja dodal parametre kodiranja znakov in jih dodal večkrat: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, preizkusil sem vse kodne sheme, a rezultat ni bil dober.
Sprva je operacijski sistem od Windows 2000 in kasneje uporabljal Unicode za obdelavo datotek, tako da . Privzeto kodiranje datotek za .Net je prav tako Unicode. Če ni drugače navedeno, je privzeto kodiranje StreamReaderja Unicode, ne pa ANSI kodna stran trenutnega sistema. Vendar je večina dokumentov še vedno shranjena v ANSI kodiranju, kitajsko besedilo pa uporablja gb2312, kar povzroča zmedene kitajske znake, kar pomeni, da je treba pri branju besedila določiti kodirni format.
Rešitev je: System.Text.Encoding.Default sporoča StreamReaderju kodiranje trenutnega operacijskega sistema.
|
Prejšnji:.net/c# Xml, JSON, Hessian, primerjava serializacije protokolnih medpomnilnikovNaslednji:.net/c# Uporabite Costura.Fody za pakiranje DLL-ja v EXE
|