Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 20162|Atbildi: 2

[Atrisināts] StreamReader risinājums izkropļotām rakstzīmēm, lasot failus

[Kopēt saiti]
Publicēts 13.04.2018 16:11:20 | | |
Šodien, kad es veidoju dialoglodziņu Atvērt failu OpenFileDialog, man vajadzēja izlasīt atvērto failu un parādīt to veidlapas RichTextBox. Tomēr, parādot failu, tika konstatēts, ka parādītā ķīniešu virkne ir izkropļota. Kodeksa galvenās daļas ir šādas:
Sākumā es arī domāju, ka ir problēma ar rakstzīmju kodējumu, tāpēc, inicializējot StreamReader, es pievienoju rakstzīmju kodēšanas parametrus un pievienoju to vairākas reizes, Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, es izmēģināju visas kodēšanas shēmas, kuras varēja pievienot, bet rezultāts nebija labs.


Sākotnēji operētājsistēma no Windows 2000 un vēlāk izmantoja Unicode failu apstrādei, tāpēc . Noklusējuma faila kodējums .Net ir arī Unicode. Ja vien nav norādīts citādi, StreamReader noklusējuma kodējums ir Unicode, nevis pašreizējās sistēmas ANSI kodu lapa. Tomēr lielākā daļa dokumentu joprojām tiek glabāti ANSI kodējumā, un ķīniešu tekstā tiek izmantots gb2312, kas izraisa ķīniešu kropļotas rakstzīmes, kas nozīmē, ka, lasot tekstu, ir jānorāda kodējuma formāts.


Risinājums ir šāds: System.Text.Encoding.Default norāda StreamReader pašreizējās operētājsistēmas kodējumu.






Iepriekšējo:.net/c# Xml, Json, Hessian, Protocol Buffers serializācijas salīdzinājums
Nākamo:.net/c# Izmantojiet Costura.Fody, lai iepakotu DLL EXE
 Saimnieks| Publicēts 13.04.2018 17:11:39 |
Šo ziņu pēdējo reizi rediģēja QWERTYU 2018-4-13 17:18

Ja tas joprojām nedarbojas, serveris, iespējams, ir saspiests datus, piemēram, gzip, vispirms ir jāatspiež dati.

Publicēts 19.04.2018 13:31:02 |
Ja tīmekļa saturs ir saspiests ar gzip un saturs ir izkropļots, ir divi risinājumi

Pirmais risinājums:

//
        Kopsavilkuma:
        Iegūstiet vai iestatiet izmantoto dekompresijas veidu.
        //
        Atgriezt rezultātus:
        Objekts T:System.Net.DecompressionMethods, kas norāda izmantotās dekompresijas tipu.
        //
        Anomālija:
        T:System.InvalidOperationException:
        Objekta pašreizējais stāvoklis neļauj iestatīt šo rekvizītu.
        public DecompressionMethods AutomaticDecompression { get; komplekts; }
Tiek veikta šāda koda rinda, izmaiņas ir ļoti mazas!




Otrais risinājums:



Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com