utf-8转gb2312 的问题

dulieo 2008-01-22 04:24:09
我要在一个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;
}
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dulieo 2008-01-22
  • 打赏
  • 举报
回复
ok,我这边测试成功了,感谢viena!
viena 2008-01-22
  • 打赏
  • 举报
回复
url为类似"http://www.com.cn/index.aspx?para1="的字符串
para为需要编码的字符串(中文等)
viena 2008-01-22
  • 打赏
  • 举报
回复
参考
url = url + System.Web.HttpUtility.UrlEncode(para,System.Text.Encoding.GetEncoding("GB2312"));
dulieo 2008-01-22
  • 打赏
  • 举报
回复
string存在于.net时,它应该是Unicode格式的。在传输的时候,才会有utf-8,gb2312等的编码格式。不知道是不是这么理解?!
我应该怎么改变string在传输时的编码格式呢,在一个页面上同时要向utf-8和gb2312编码的页面发送数据(参数挂在URL上),并且取得它们的返回结果。
vrhero 2008-01-22
  • 打赏
  • 举报
回复
你搞错概念了...在.NET中string总是UTF-8编码...
dulieo 2008-01-22
  • 打赏
  • 举报
回复
我从那个帖子里找不到能够运行正确的结果,我的程序中utf-8可以转到ASCII,但是转gb2312的时候就没有反应,结果还是utf-8的。

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧