|
|
Publicēts 13.04.2018 16:11:20
|
|
|

Šodien, kad es veidoju dialoglodziņu Atvērt failu OpenFileDialog, man vajadzēja izlasīt atvērto failu un parādīt to veidlapas RichTextBox. Tomēr, parādot failu, tika konstatēts, ka parādītā ķīniešu virkne ir izkropļota. Kodeksa galvenās daļas ir šādas:
Sākumā es arī domāju, ka ir problēma ar rakstzīmju kodējumu, tāpēc, inicializējot StreamReader, es pievienoju rakstzīmju kodēšanas parametrus un pievienoju to vairākas reizes, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, es izmēģināju visas kodēšanas shēmas, kuras varēja pievienot, bet rezultāts nebija labs.
Sākotnēji operētājsistēma no Windows 2000 un vēlāk izmantoja Unicode failu apstrādei, tāpēc . Noklusējuma faila kodējums .Net ir arī Unicode. Ja vien nav norādīts citādi, StreamReader noklusējuma kodējums ir Unicode, nevis pašreizējās sistēmas ANSI kodu lapa. Tomēr lielākā daļa dokumentu joprojām tiek glabāti ANSI kodējumā, un ķīniešu tekstā tiek izmantots gb2312, kas izraisa ķīniešu kropļotas rakstzīmes, kas nozīmē, ka, lasot tekstu, ir jānorāda kodējuma formāts.
Risinājums ir šāds: System.Text.Encoding.Default norāda StreamReader pašreizējās operētājsistēmas kodējumu.
|
Iepriekšējo:.net/c# Xml, Json, Hessian, Protocol Buffers serializācijas salīdzinājumsNākamo:.net/c# Izmantojiet Costura.Fody, lai iepakotu DLL EXE
|