Ajax中最常出现的一个问题就是服务端的包含中文的Response被XmlHttp编码后变成乱码.Atlas中也同样存在这个问题.
这虽然不是什么大问题,但有时候确实很令人烦恼,现给出我的两个解决方案,有需要的朋友可以参照解决.
1).修改web.config编码为
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>,若之前你的编码为gb2312,这次的改动可能会带来其他页面的乱码出现,那你只好整站统一utf-8编码
2).对提交字符串编码(推荐)
static string FormatEncode(string str)
{
byte[] buffer = System.Text.Encoding.Default.GetBytes(str);
return System.Text.Encoding.UTF8.GetString(buffer);
}
{
byte[] buffer = System.Text.Encoding.Default.GetBytes(str);
return System.Text.Encoding.UTF8.GetString(buffer);
}
用该方法对输入字符串格式化后再提交,则不会再出现问题.
此方法的好处在于无须修改页面编码,修改后出问题几率小;
缺点是每次提交进行一次编码,使性能下降.但是可以预计这种提交数据与展示相比肯定是要少的多,因此对性能的影响有限.