我把iso-8859-1的sword转成utf8编码,程序如下:
我发现转的不对,我哪里用错了,谢谢
word.InnerText = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(Sword));

解决方案 »

  1.   

    sword和utf_8能互转不?转出的是不是乱码啊!
      

  2.   

    乱弹琴...1.你这个Sword显然是字符串...那么在.NET中它不可能是iso-8859-1编码,.NET中所有字符字符串都是UTF-16编码...2.System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(Sword)//这句是将UTF-16字符串编码为iso-8859-1字节数组...3.System.Text.Encoding.UTF8.GetString(System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(Sword))//这句再把iso-8859-1字节数组以UTF-8编码解码为UTF-16字符串...码制都不一样当然是乱码...
      

  3.   

    在 .NET 中,string 和 char 的编码都是统一的,所以编码问题其实很多时候都是针对流的,而流通常都通过 byte 数组读写(基础流),所以编码就变成了对 byte[] 的操作。这里是我写的一个例子:
    FileStream fs = new FileStream(@"..\..\1.txt", FileMode.Open);
    byte[] bytes = new byte[1024];
    fs.Read(bytes, 0, 1024);
    fs.Close();
    string str = System.Text.Encoding.UTF8.GetString(bytes);
    string str1 = System.Text.Encoding.Unicode.GetString(bytes); //乱码
    1.txt 文件是 UTF-8 编码的,所以 System.Text.Encoding.UTF8.GetString() 这里能够得到正确的 string。
    而 System.Text.Encoding.Unicode.GetString() 这个用 Unicode 去读取,所以得到乱码。
    所以如果你有 iso-8859-1 编码的文字流,先读到 byte[] 中,再用:
    System.Text.Encoding.GetEncoding("iso-8859-1").GetString(bytes) 就可以读取到字符串中了。
    至于最终显示在页面中的编码,那不用在程序中处理,配置 Web.config 的 globalization 就可以了,系统会自动对编码进行转换。