|
|
Опубліковано 13.04.2018 16:11:20
|
|
|

Сьогодні, коли я створював діалогове діалог відкритого файлу 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
|