浏览 6119 次
锁定老帖子 主题:ext 字符集和编码中文问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-04
在ext-base中设置编码为defaultPostHeader:'application/x-www-form-urlencoded' 服务器端使用的是tomcat,在Filter中我试过获得请求的编码 httpServletRequest.getCharacterEncoding() 打印出来的编码方式是null 并且打印出来的字符也是乱码 于是我对请求重新编码为utf-8, httpServletRequest.setCharacterEncoding("utf-8") 再打印编码方式,这时是urf-8,但是去获得请求中的数据(中文),还是乱码。为什么在服务器端 对请求重新编码,还是不行,这个请求是post方式的,应该可以重新编码 第二种情况 修改了ext-base的编码方式 defaultPostHeader:'application/x-www-form-urlencoded;charset=utf-8' 在服务器端获得请求的编码是utf-8 打印出来的字符是正确的,没有乱码 现在有几点不明白的 1.在第一种情况中,在服务器端获取请求的编码方式为什么为null 2.在第一种情况中,在服务器端对请求数据重新编码成utf-8,再去获取数据,为什么还是乱码 3.ext的表单提交是默认使用什么方式的,是否一定要指定编码方式? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-04
我这里因为要做繁体下的系统,没有楼主你研究的那么深入,当时也就是用ECLIPSE把所有的JS文件都改为UTF-8格式,注意,是文件改为UTF-8,然后里面运行的非英文字符就不会乱码了。
|
|
返回顶楼 | |
发表时间:2008-03-20
第一种情况是因为浏览器没有将post方法请求的编码类型信息'application/x-www-form-urlencoded;charset=utf-8' 放在HTTP请求头里发送出去,参考此链接:
http://www.jsfsoft.com:8080/beyond-pebble/pinxue/2006/07/27/1153934754918.html 第二种情况,很有可能你在httpServletRequest.setCharacterEncoding("utf-8") 之前调用了httpServletRequest.getParameter(s)方法或httpServletRequest.getReader()方法或httpServletRequest.getInputStream()方法之一,导致你的httpServletRequest.setCharacterEncoding("utf-8") 无效,可以参考http://www.iteye.com/topic/131962; 第三种情况,我只知道HttpClient默认的是ISO-8859-1,ext的我不知道,如果在客户端设置application/x-www-form-urlencoded;charset=utf-8,那么在服务器端不用 httpServletRequest.setCharacterEncoding("utf-8"),httpServletRequest也是按照utf-8方式,这里忽略你的过滤器处理请求. |
|
返回顶楼 | |
发表时间:2008-03-20
这样的问题我遇到过:建议把所有的文件字符集都改为uft-8,尤其是js
|
|
返回顶楼 | |