|
|
Yayınlandı 13.04.2018 16:11:20
|
|
|

Bugün, OpenFileDialog adlı bir Açık Dosya diyalogu oluştururken, açık dosyayı okumam ve formdaki RichTextBox'ta görüntülemem gerekiyordu. Ancak dosya görüntülenirken, gösterilen Çince dizisinin bozulduğu tespit edildi. Kodun temel bölümleri şunlardır:
İlk başta karakter kodlamasında bir sorun olduğunu düşündüm, bu yüzden StreamReader'ı başlattığımda karakter kodlama parametrelerini ekledim ve birkaç kez ekledim: Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII, eklenebilir tüm kodlama şemalarını denedim ama sonuç iyi olmadı.
Başlangıçta, Windows 2000 ve sonrasında kullanılan işletim sistemi dosya işleme için Unicode kullanıyordu, yani . .Net için varsayılan dosya kodlaması da Unicode'dur. Aksi belirtilmedikçe, StreamReader'ın varsayılan kodlaması Unicode'dur, mevcut sistemin ANSI kod sayfası değil. Ancak, belgelerin çoğu hâlâ ANSI kodlamasında saklanmakta ve Çince metinde gb2312 kullanılır; bu da Çince karakterlerinin karışmasına neden olur; bu da metin okunurken kodlama formatının belirtilmesi gerektiği anlamına gelir.
Çözüm şu şekildedir: System.Text.Encoding.Default, StreamReader'a mevcut işletim sisteminin kodlamasını bildirir.
|
Önceki:.net/c# Xml, Json, Hessian, Protokol Tamponları serileştirme karşılaştırmasıÖnümüzdeki:.net/c# DLL'yi EXE'ye paketlemek için Costura.Fody kullanın
|