Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 20162|Odgovoriti: 2

[Rešeno] Rešitev StreamReaderja za popačene znake pri branju datotek

[Kopiraj povezavo]
Objavljeno na 13. 04. 2018 16:11:20 | | |
Danes, ko sem ustvarjal pogovorno okno Odpri datoteko OpenFileDialog, sem moral prebrati odprto datoteko in jo prikazati v RichTextBox v obrazcu. Vendar pa je bilo ob prikazu datoteke ugotovljeno, da je prikazani kitajski niz popačen. Ključni deli kodeksa so naslednji:
Sprva sem tudi mislil, da je težava s kodiranjem znakov, zato sem ob inicializaciji StreamReaderja dodal parametre kodiranja znakov in jih dodal večkrat: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, preizkusil sem vse kodne sheme, a rezultat ni bil dober.


Sprva je operacijski sistem od Windows 2000 in kasneje uporabljal Unicode za obdelavo datotek, tako da . Privzeto kodiranje datotek za .Net je prav tako Unicode. Če ni drugače navedeno, je privzeto kodiranje StreamReaderja Unicode, ne pa ANSI kodna stran trenutnega sistema. Vendar je večina dokumentov še vedno shranjena v ANSI kodiranju, kitajsko besedilo pa uporablja gb2312, kar povzroča zmedene kitajske znake, kar pomeni, da je treba pri branju besedila določiti kodirni format.


Rešitev je: System.Text.Encoding.Default sporoča StreamReaderju kodiranje trenutnega operacijskega sistema.






Prejšnji:.net/c# Xml, JSON, Hessian, primerjava serializacije protokolnih medpomnilnikov
Naslednji:.net/c# Uporabite Costura.Fody za pakiranje DLL-ja v EXE
 Najemodajalec| Objavljeno na 13. 04. 2018 17:11:39 |
Ta objava je bila nazadnje urejena s strani QWERTYU 13. 4. 2018 ob 17:18

Če še vedno ne deluje, je strežnik morda stisnil podatke, če vzamemo gzip kot primer, najprej morate podatke dekomprimirati.

Objavljeno na 19. 04. 2018 13:31:02 |
Če je spletna vsebina stisnjena z gzip in je vsebina popačena, obstajata dve rešitvi

Prva rešitev:

//
        Povzetek:
        Določite ali določite vrsto dekompresije, ki se uporablja.
        //
        Rezultati vrnitve:
        Objekt T:System.Net.DecompressionMethods, ki označuje vrsto uporabljene dekompresije.
        //
        Anomalija:
        T:System.InvalidOperationException:
        Trenutno stanje objekta ne dovoljuje nastavitve te lastnosti.
        public DecompressionMethods AutomaticDecompression { get; set; }
Naslednja vrstica kode je narejena, spremembe so zelo majhne!!




Druga rešitev:



Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com