utf-8转gb2312 的问题

时间:2023-01-06 07:26:34
我要在一个utf-8编码格式的页面向一个gb2312编码格式的页面发送数据,下面的代码是参照msdn里面写的,结果还是转换不了。请各位大大帮我看一下,是不是这样写,错的什么地方。谢谢!

public string convertStr(string str)
    {

        Encoding utf8 = Encoding.UTF8;
        Encoding gb2312 = Encoding.GetEncoding(936);

        byte[] utf8Bytes = utf8.GetBytes(str);

        byte[] gb2312Bytes = Encoding.Convert(utf8, gb2312, utf8Bytes);

        char[] gb2312Chars = new char[gb2312.GetCharCount(gb2312Bytes, 0, gb2312Bytes.Length)];
        gb2312.GetChars(gb2312Bytes, 0, gb2312Bytes.Length, gb2312Chars, 0);
        string gb2312Str = new string(gb2312Chars);

        return gb2312Str;
    }

7 个解决方案

#2


我从那个帖子里找不到能够运行正确的结果,我的程序中utf-8可以转到ASCII,但是转gb2312的时候就没有反应,结果还是utf-8的。

#3


你搞错概念了...在.NET中string总是UTF-8编码...

#4


string存在于.net时,它应该是Unicode格式的。在传输的时候,才会有utf-8,gb2312等的编码格式。不知道是不是这么理解?!
我应该怎么改变string在传输时的编码格式呢,在一个页面上同时要向utf-8和gb2312编码的页面发送数据(参数挂在URL上),并且取得它们的返回结果。

#5


参考
url = url + System.Web.HttpUtility.UrlEncode(para,System.Text.Encoding.GetEncoding("GB2312"));

#6


url为类似"http://www.com.cn/index.aspx?para1="的字符串
para为需要编码的字符串(中文等)

#7


ok,我这边测试成功了,感谢viena!

#1


#2


我从那个帖子里找不到能够运行正确的结果,我的程序中utf-8可以转到ASCII,但是转gb2312的时候就没有反应,结果还是utf-8的。

#3


你搞错概念了...在.NET中string总是UTF-8编码...

#4


string存在于.net时,它应该是Unicode格式的。在传输的时候,才会有utf-8,gb2312等的编码格式。不知道是不是这么理解?!
我应该怎么改变string在传输时的编码格式呢,在一个页面上同时要向utf-8和gb2312编码的页面发送数据(参数挂在URL上),并且取得它们的返回结果。

#5


参考
url = url + System.Web.HttpUtility.UrlEncode(para,System.Text.Encoding.GetEncoding("GB2312"));

#6


url为类似"http://www.com.cn/index.aspx?para1="的字符串
para为需要编码的字符串(中文等)

#7


ok,我这边测试成功了,感谢viena!