在action中加入response.setContentType("text/html; charset=GBK");来设置编码格式就可以了
因为
使用ajax在发出请求后,xmlhttp组件在解析返回数据的编码时,是根据 http 响应的头部中
是否有页面内容编码声明决定的.
如果返回的 http 头部中包含 charset 的内容编码声明,则按指定的编码读 responseBody,
转换后存在 responseText中.
如果返回的 http 头部中没有包含 charset 的内容编码声明,则默认其编码为 utf-8,
所以,如果是gb2312的html页面,在用ajax请求后,读出来肯定是乱的.
原因是因为 html 页面服务端在输出的时候,是不包含 charset 内容编码声明的,所以ajax就会按utf-8
来解码,不乱才怪.
阅读(351) | 评论(1) | 转发(0) |