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上),并且取得它们的返回结果。
我应该怎么改变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为需要编码的字符串(中文等)
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上),并且取得它们的返回结果。
我应该怎么改变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为需要编码的字符串(中文等)
para为需要编码的字符串(中文等)
#7
ok,我这边测试成功了,感谢viena!