17 Eylül 2017 Pazar

Encoding Sınıfı

Giriş
Encoding sınıfı soyut bir sınıftır.
Sabitler
Şöyledirler
Encoding utf8    = Encoding.UTF8;
Encoding ascii   = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
Ayrıca şu da vardır.
Encoding.Default;
Default neye eşittir bilmiyoru ama şu kod platforma çok bağımlıymış gibi geliyor. Bence böyle yapmamak lazım.
string str = ...;
byte[] data = Encoding.Default.GetBytes(str);
ASCII Alanı
ASCII alanı şu sınıftır. ASCIIEncoding sınıfı Encoding sınıfından kalıtır.
System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();
UTF8 Alanı
UTF8 alanı UTF8Encoding sınıfıdır. UTF8Encoding sınıfı Encoding sınıfından kalıtır.
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
GetBytes metodu
Şöyle yaparız.
string fileString = ...;
Encoding utf8 = Encoding.utf8;
byte[] data   = utf8.GetBytes(fileString);
GetEncoding metodu
Encoder için istersek ReplacementFallback ve ExceptionFallbak nesneleri verebiliriz.
Örnek
Şöyle yaparız
var encoding = Encoding.GetEncoding(
  "UTF-8",
  new EncoderReplacementFallback(string.Empty),
  new DecoderReplacementFallback(string.Empty)
);
Örnek
ASCII olmayan karakterleri " " ile değiştirmek için şöyle yaparız.
string strReplacedVal = Encoding.ASCII.GetString(
        Encoding.Convert(
            Encoding.UTF8,
            Encoding.GetEncoding(
                Encoding.ASCII.EncodingName,
                new EncoderReplacementFallback(" "),
                new DecoderExceptionFallback()
                ),
            Encoding.UTF8.GetBytes(line)
        )
);
GetString metodu
Şöyle yaparız.
byte[] buffer = ...;
string pdfText = Encoding.Default.GetString(buffer);



Hiç yorum yok:

Yorum Gönder