|
|
Postitatud 13.04.2018 16:11:20
|
|
|

Täna, kui ma tegin Open File dialoogi OpenFileDialog, pidin avatud faili lugema ja kuvama selle RichTextBoxis vormis. Kuid faili kuvamisel avastati, et kuvatud hiina string oli segane. Koodi peamised osad on järgmised:
Alguses arvasin ka, et tähemärgi kodeerimisega on probleem, nii et kui StreamReaderi initsialiseerisin, lisasin sinna märgi kodeerimise parameetrid ja lisasin mitu korda: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, proovisin kõiki lisatud kodeerimisskeeme, kuid tulemus polnud hea.
Algselt kasutas Windows 2000 ja hilisema operatsioonisüsteem failitöötluseks Unicode'i, seega . .Net vaikimisi failikodeeringuks on samuti Unicode. Kui pole teisiti märgitud, on StreamReaderi vaikimisi kodeeringuks Unicode, mitte praeguse süsteemi ANSI koodileht. Kuid enamik dokumente on endiselt salvestatud ANSI kodeeringusse ning hiina tekst kasutab gb2312, mis põhjustab hiina tähemärkide segadust, mis tähendab, et kodeerimisformaat tuleb teksti lugemisel täpsustada.
Lahendus on: System.Text.Encoding.Default ütleb StreamReaderile praeguse operatsioonisüsteemi kodeeringu.
|
Eelmine:.net/c# Xml, Json, Hessian, Protokollipuhvrite serialiseerimise võrdlusJärgmine:.net/c# Kasuta Costura.Fodyt, et pakendada DLL EXE-sse
|