2009-03-10 16 views

cevap

23

Dene:

 System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1"); 
     System.Text.Encoding utf_8 = System.Text.Encoding.UTF8; 

     // Unicode string. 
     string s_unicode = "abcéabc"; 

     // Convert to ISO-8859-1 bytes. 
     byte[] isoBytes = iso_8859_1.GetBytes(s_unicode); 

     // Convert to UTF-8. 
     byte[] utf8Bytes = System.Text.Encoding.Convert(iso_8859_1, utf_8, isoBytes); 
+0

Ahh, Convert yöntemini hiç bilmiyordum :) – leppie

+0

Teşekkürler, ama nasıl çıktı verebilirim: Response.Write (isoBytes) çalışmıyor? – Tom

+0

byte [] srcBytes = utf_8.GetBytes (srcstr); byte [] tgtBytes = System.Text.Encoding.Convert (utf_8, iso_8859_1, srcBytes); Response.Write (tgtBytes); – Tom

5

.NET Dizeleri, dahili olarak tüm UTF-16'dır. .NET'te UTF-8 veya ISO-8859-1 kodlanmış System.String kodlaması yoktur. Belirli bir kodlama kullanımı System.Text.Encoding sınıfta dize ikili gösterimini almak için:

byte[] bytes = Encoding.GetEncoding("iso-8859-1").GetBytes("hello world"); 
+0

Neredeyse;) UTF8 dizesi -> bayt -> ISO-88590-1 dize – leppie

+0

@leppie: UTF8 veya ISO-88590-1 dizesi nedir? Bir dizi bayttan başka bir şey var mı? –

İlgili konular