程序是一般处理程序输出
var httpcontext = context.Response; httpcontext.Buffer = true; httpcontext.ExpiresAbsolute = DateTime.Now.AddSeconds(0); httpcontext.AddHeader("Pragma", "No-Cache"); httpcontext.Expires = 0;
public void ResponseClient(string result, HttpContext context) { context.Response.Write("{ \"result\":\"" + result + "\"}"); }
也设置了
Response.ContentType
Response.Charset
都是utf-8 网上有的说在配置文件里面加globalization 也无效
最后对输出的字符串这样处理
HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding("utf-8"));
还是乱码
在页面设置<meta http-equiv="content-type" content="text/html;charset=utf-8">
都没有用!
浏览器图片:
求解决
看看你的chrome版本,貌似这个问题不影响程序~
@s_p: 再试一下,加上httpcontext.ContentType = "application/json";
var httpcontext = context.Response; httpcontext.Buffer = true; httpcontext.ExpiresAbsolute = DateTime.Now.AddSeconds(0); httpcontext.AddHeader("Pragma", "No-Cache"); httpcontext.Expires = 0; httpcontext.ContentType = "application/json"; ResponseClient("广东省惠州市惠城区花园水中路/离豪威大酒店0米/离\"114.391901\"0米......太长了==",context);
我得到的结果:
没加是这样:
@李宝亨:谢谢 我解决了 不是这个问题 是这个
context.Response.Write("{ \"result\":\"" + result + "\"}"); result作为变量 里面的值有引号 所以前台ajax解析的时候出了问题.后来用c#只带的类库序列化对象 就可以了 不手动拼写。
@s_p: 指定了ContentType为json会自动帮你转义的
context.Response.Write(System.Text.Encoding.GetEncoding("utf-8").GetBytes("string"),0,System.Text.Encoding.GetEncoding("utf-8").GetBytes("string").Length);
这个有语法 类型错误 !
问题可能不是出在Response
是的!