Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 20162|Răspunde: 2

[Rezolvat] Soluție StreamReader pentru caractere distorsionate la citirea fișierelor

[Copiază linkul]
Postat pe 13.04.2018 16:11:20 | | |
Astăzi, când am creat un dialog Open File OpenFileDialog, a trebuit să citesc fișierul deschis și să-l afișez în RichTextBox din formular. Totuși, la afișarea fișierului, s-a constatat că șirul chinezesc afișat era distorsionat. Părțile cheie ale codului sunt următoarele:
La început, am crezut că există o problemă cu codificarea caracterelor, așa că atunci când am inițializat StreamReader, am adăugat parametrii de codare a caracterelor și i-am adăugat de mai multe ori: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, am încercat toate schemele de codare care puteau fi adăugate, dar rezultatul nu a fost bun.


Inițial, sistemul de operare din Windows 2000 și ulterior folosea Unicode pentru procesarea fișierelor, deci . Codificarea implicită a fișierelor pentru .Net este tot Unicode. Dacă nu se specifică altfel, codificarea implicită a StreamReader este Unicode, nu pagina de cod ANSI a sistemului curent. Totuși, majoritatea documentelor sunt încă stocate în codare ANSI, iar textul chinezesc folosește gb2312, ceea ce cauzează caractere chinezești distorsionate, ceea ce înseamnă că formatul de codare trebuie specificat la citirea textului.


Soluția este: System.Text.Encoding.Default îi spune StreamReader codarea sistemului de operare curent.






Precedent:.net/c# Comparație de serializare XML, Json, Hessian, Protocol Buffers
Următor:.net/c# Folosește Costura.Fody pentru a împacheta DLL-ul în EXE
 Proprietarul| Postat pe 13.04.2018 17:11:39 |
Această postare a fost editată ultima dată de QWERTYU la 2018-4-13 17:18

Dacă tot nu funcționează, serverul poate fi comprimat datele, luând gzip ca exemplu, trebuie mai întâi să decomprimi datele.

Postat pe 19.04.2018 13:31:02 |
Dacă conținutul web este comprimat cu gzip și conținutul este distorsionat, există două soluții

Prima soluție:

//
        Rezumat:
        Ia sau setează tipul de decompresie folosit.
        //
        Rezultatele revenirii:
        Un obiect T:System.Net.DecompressionMethods care indică tipul de decompresie folosit.
        //
        Anomalie:
        T:System.InvalidOperationException:
        Starea curentă a obiectului nu permite setarea acestei proprietăți.
        Public DecompressionMethods Automatic Decompression { get; set; }
Următoarea linie de cod este realizată, schimbările sunt foarte mici!!




A doua soluție:



Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com