Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20162|Odpowiedź: 2

[Rozwiązane] Rozwiązanie StreamReader dla zniekształconych znaków podczas odczytu plików

[Skopiuj link]
Opublikowano 13.04.2018 16:11:20 | | |
Dziś, gdy tworzyłem okno otwierania pliku OpenFileDialog, musiałem przeczytać otwarty plik i wyświetlić go w formularzu RichTextBox. Jednak podczas wyświetlania pliku okazało się, że wyświetlany chiński ciąg był zniekształcony. Kluczowe elementy kodeksu to:
Na początku myślałem też, że jest problem z kodowaniem znaków, więc gdy inicjowałem StreamReader, dodałem do niego parametry kodowania znaków i dodawałem je kilka razy: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, próbowałem wszystkich możliwych schematów kodowania, ale efekt nie był dobry.


Początkowo system operacyjny z Windows 2000 i późniejszych używał Unicode do przetwarzania plików, więc . Domyślne kodowanie plików .Net to również Unicode. O ile nie zakreślono inaczej, domyślne kodowanie StreamReader to Unicode, a nie obecna strona kodowa ANSI w obecnym systemie. Jednak większość dokumentów nadal jest przechowywana w kodowaniu ANSI, a tekst chiński używa gb2312, co powoduje zniekształcone znaki chińskie, co oznacza, że format kodowania musi być określony podczas czytania tekstu.


Obejście to: System.Text.Encoding.Default informuje StreamReader o kodowaniu aktualnego systemu operacyjnego.






Poprzedni:.net/c# Xml, Json, Hessian, porównanie serializacji protokołu
Następny:.net/c# Użyj Costura.Fody do pakowania DLL do pliku EXE
 Ziemianin| Opublikowano 13.04.2018 17:11:39 |
Ten post został ostatnio edytowany przez QWERTYU 13 kwietnia 2018 o godzinie 17:18

Jeśli nadal nie działa, serwer mógł skompresować dane, na przykład gzip, najpierw musisz je zdekompresować.

Opublikowano 19.04.2018 13:31:02 |
Jeśli zawartość internetowa jest kompresowana przez gzip, a zawartość zniekształcona, istnieją dwa rozwiązania

Pierwsze rozwiązanie:

//
        Streszczenie:
        Ustaw lub ustaw rodzaj dekompresji.
        //
        Wyniki zwrotów:
        Obiekt T:System.Net.DecompressionMethods, który wskazuje rodzaj zastosowanej dekompresji.
        //
        Anomalia:
        T:System.InvalidOperationException:
        Obecny stan obiektu nie pozwala na ustawienie tej właściwości.
        public DecompressionMethods AutomaticDecompression { get; set; }
Następująca linijka kodu jest wykonana, zmiany są bardzo małe!!




Drugie rozwiązanie:



Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com