|
|
Zveřejněno 13.04.2018 16:11:20
|
|
|

Dnes, když jsem vytvářel dialog Open File OpenFileDialog, potřeboval jsem přečíst otevřený soubor a zobrazit ho ve formuláři RichTextBox. Při zobrazení souboru se však zjistilo, že zobrazený čínský řetězec je zkreslený. Klíčové části kódu jsou následující:
Nejdřív jsem si také myslel, že je problém s kódováním znaků, takže když jsem inicializoval StreamReader, přidal jsem do něj parametry kódování znaků a přidal je několikrát, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, zkoušel jsem všechna kódovací schémata, která šla přidat, ale výsledek nebyl dobrý.
Původně operační systém od Windows 2000 a později používal Unicode pro zpracování souborů, takže . Výchozí kódování souborů pro .Net je také Unicode. Pokud není uvedeno jinak, výchozí kódování StreamReaderu je Unicode, nikoli současná ANSI kódová stránka systému. Většina dokumentů je však stále uložena v ANSI kódování a čínský text používá gb2312, což způsobuje zmatené čínské znaky, což znamená, že při čtení textu musí být specifikován formát kódování.
Řešením je: System.Text.Encoding.Default sděluje StreamReaderu kódování aktuálního operačního systému.
|
Předchozí:.net/c# Xml, Json, Hessian, porovnání serializace protokolových bufferůDalší:.net/c# Použijte Costura.Fody k zabalení DLL do EXE
|