|
|
Paskelbta 2018-04-13 16:11:20
|
|
|

Šiandien, kai aš darau atidaryti failą dialogo OpenFileDialog, man reikėjo perskaityti atidarytą failą ir rodyti jį RichTextBox formoje. Tačiau rodant failą buvo nustatyta, kad rodoma kinų eilutė buvo iškraipyta. Pagrindinės kodo dalys yra šios:
Iš pradžių taip pat maniau, kad kilo problemų dėl simbolių kodavimo, todėl inicijavęs "StreamReader" pridėjau simbolių kodavimo parametrus ir pridėjau kelis kartus, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, išbandžiau visas kodavimo schemas, kurias buvo galima pridėti, bet rezultatas nebuvo geras.
Iš pradžių operacinė sistema iš "Windows 2000" ir vėliau failų apdorojimui naudojo "Unicode", taigi . Numatytasis .Net failų kodavimas taip pat yra Unicode. Jei nenurodyta kitaip, numatytasis StreamReader kodavimas yra Unicode, o ne dabartinės sistemos ANSI kodų puslapis. Tačiau dauguma dokumentų vis dar saugomi ANSI kodavimu, o kinų tekste naudojamas gb2312, dėl kurio kinų kalba yra iškraipyta, o tai reiškia, kad skaitant tekstą reikia nurodyti kodavimo formatą.
Sprendimas yra toks: System.Text.Encoding.Default nurodo "StreamReader" dabartinės operacinės sistemos kodavimą.
|
Ankstesnis:.net/c# Xml, Json, Hessian, Protocol Buffers serializacijos palyginimasKitą:.net/c# Naudokite Costura.Fody, kad supakuotumėte DLL į EXE
|