|
|
Публикувано в 13.04.2018 г. 16:11:20 ч.
|
|
|

Днес, когато правех диалог за Open File OpenFileDialog, трябваше да прочета отворения файл и да го покажа в RichTextBox във формата. Въпреки това, при показване на файла се установи, че показаният китайски низ е изкривен. Ключовите части на кода са следните:
Първоначално също мислех, че има проблем с кодирането на символи, затова когато инициализирах StreamReader, добавих параметрите за кодиране на символите и ги добавих няколко пъти: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, пробвах всички схеми за кодиране, които можех да се добавят, но резултатът не беше добър.
Първоначално операционната система от Windows 2000 и по-късно използваше Unicode за обработка на файлове, така че . Стандартното кодиране на файлове за .Net също е Unicode. Освен ако не е посочено друго, стандартното кодиране на StreamReader е Unicode, а не ANSI кодовата страница на текущата система. Въпреки това, повечето документи все още се съхраняват в ANSI кодиране, а китайският текст използва gb2312, което причинява изкривени китайски знаци, което означава, че форматът на кодиране трябва да бъде посочен при четене на текста.
Решението е: System.Text.Encoding.Default казва на StreamReader кодирането на текущата операционна система.
|
Предишен:.net/c# Xml, Json, Hessian, сравнение на сериализацията на протоколни буфериСледващ:.net/c# Използвайте Costura.Fody за пакетиране на DLL в EXE
|