Monday, April 25, 2011

How to convert string to "iso-8859-1" ?

How can i convert an UTF-8 string into an ISO-8859-1 string?

From stackoverflow
  • .NET Strings are all UTF-16 internally. There is no UTF-8 or ISO-8859-1 encoded System.String in .NET. To get the binary representation of the string in a particular encoding use System.Text.Encoding class:

    byte[] bytes = Encoding.GetEncoding("iso-8859-1").GetBytes("hello world");
    
    leppie : Almost ;) UTF8 string -> bytes -> ISO-88590-1 string
    Mehrdad Afshari : @leppie: What's a UTF8 or ISO-88590-1 string? Are those anything except a sequence of bytes?
  • Try:

            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);
    
    leppie : Ahh, never knew about the Convert method :)
    Tom : Thanks, but how can I output this: Response.Write(isoBytes) does not work?
    Tom : byte[] srcBytes = utf_8.GetBytes(srcstr); byte[] tgtBytes = System.Text.Encoding.Convert(utf_8, iso_8859_1, srcBytes); Response.Write(tgtBytes);

0 comments:

Post a Comment