Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20162|Отговор: 2

[Решено] Решение на StreamReader за изкривени символи при четене на файлове

[Копирай линк]
Публикувано в 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
 Хазяин| Публикувано в 13.04.2018 г. 17:11:39 ч. |
Този пост беше последно редактиран от QWERTYU на 2018-4-13 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