Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20162|Відповідь: 2

[Вирішено] Рішення StreamReader для спотворених символів під час читання файлів

[Копіювати посилання]
Опубліковано 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
 Орендодавець| Опубліковано 13.04.2018 17:11:39 |
Цей допис востаннє редагувався QWERTYU 13.04.2018, 17:18

Якщо все одно не працює, сервер міг стиснути дані, наприклад, gzip, спочатку потрібно їх розпакувати.

Опубліковано 19.04.2018 13:31:02 |
Якщо веб-контент стискається за допомогою gzip і він спотворений, є два варіанти

Перше рішення:

//
        Зведення:
        Виберіть або встановіть тип декомпресії, який використовується.
        //
        Результати повернення:
        Об'єкт T:System.Net.DecompressionMethods, який вказує тип використаної декомпресії.
        //
        Аномалія:
        T:System.InvalidOperationException:
        Поточний стан об'єкта не дозволяє встановити цю властивість.
        public DecompressionMethods AutomaticDecompression { get; декорація; }
Виконується наступний рядок коду, зміни дуже незначні!!




Друге рішення:



Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com