论坛首页 Web前端技术论坛

ext 字符集和编码中文问题

浏览 6119 次
精华帖 (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的表单提交是默认使用什么方式的,是否一定要指定编码方式?
   发表时间:2008-01-04  
我这里因为要做繁体下的系统,没有楼主你研究的那么深入,当时也就是用ECLIPSE把所有的JS文件都改为UTF-8格式,注意,是文件改为UTF-8,然后里面运行的非英文字符就不会乱码了。
0 请登录后投票
   发表时间: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方式,这里忽略你的过滤器处理请求.
0 请登录后投票
   发表时间:2008-03-20  
这样的问题我遇到过:建议把所有的文件字符集都改为uft-8,尤其是js
1 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics