VS2005 AJAX中文乱码解决方案

在使用vs2005 ajax时,遇到一个令人郁闷的事情。
在web.config文件中增加:
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>,在提交form表单到服务器,获取form信息内容出现了中文乱码,然后改为:<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>,form表单中文正常了,而js文件中的中文出现乱码,于是又重新把字符集改为gb2312,并且从网上找到了对于提交信息中文乱码的解决方法,在页面中添加如下代码:

using System.Collections.Specialized;

NameValueCollection form = null;
string s = System.Text.Encoding.UTF8.GetString(Request.BinaryRead(Request.ContentLength));
form = HttpUtility.ParseQueryString(s);

string name = form[tbName.UniqueID].Trim();//tbName为TextBox控件
string address = form[tbAddress.UniqueID].Trim();

好像问题解决了,总算松了一口气。刚消停了没一会儿,又发现一个严重的问题,在提交表单时,出现“回发或回调参数无效”。原因是DropDownList控件中ListItem的Value属性包含汉字,晕了,真是郁闷呢!最后,看到了会飞的鱼的博文,终于找到了完美解决方案:在web.config中添加:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/>

OK,万事大吉了(但愿如此),js中文、TextBox中文值、DropDownList中文值都没有再出现问题

你可能感兴趣的:(Ajax)