锁定老帖子 主题:AJAX中文乱码解决
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-24
客户端对url进行两次转码:(str可能是中文) ... var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime(); url = encodeURI(url); url = encodeURI(url); ... 服务器段对参数值进行解码: ... String word = request.getParameter("word"); word = java.net.URLDecoder.decode(word,"UTF-8"); ... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-24
你这样传值就不是一个好办法,不如编码后再传,用urlencode
|
|
返回顶楼 | |
发表时间:2009-08-24
编码后再传? 可以代码体现下吗?
|
|
返回顶楼 | |
发表时间:2009-08-24
文件编码=数据库编码=输出编码=网页编码
|
|
返回顶楼 | |
发表时间:2009-08-25
最后修改:2009-08-25
还可以利用js进行HEX加密,java解密. 怎么不能删除留言啊,一不小心点错了,又要被扣分.. |
|
返回顶楼 | |
发表时间:2009-08-25
java_mike 写道 以下是我的AJAX中文乱码的解决方案:
客户端对url进行两次转码:(str可能是中文) ... var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime(); url = encodeURI(url); url = encodeURI(url); ... 服务器段对参数值进行解码: ... String word = request.getParameter("word"); word = java.net.URLDecoder.decode(word,"UTF-8"); ... 奇怪,为什么要endodeURI两次呢? |
|
返回顶楼 | |
发表时间:2009-08-25
我也不是很清楚,一次不行!
|
|
返回顶楼 | |
发表时间:2009-08-25
java_mike 写道 我也不是很清楚,一次不行!
request.getParameter做的怪。。。 要是使用struts2的自动类型转换就不用encodeURI两次了 |
|
返回顶楼 | |
发表时间:2009-08-25
java_mike 写道
以下是我的AJAX中文乱码的解决方案:
客户端对url进行两次转码:(str可能是中文) ... var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime(); url = encodeURI(url); url = encodeURI(url); ... 服务器段对参数值进行解码: ... String word = request.getParameter("word"); word = java.net.URLDecoder.decode(word,"UTF-8"); ...
String word = request.getParameter("word"); 其实这一步是可以简化的。有这么几种做法,很常见:
1.客户端提交时使用encodeURI或者encodeurIcompent参数来进行utf-8编码,然后发送给服务器,如果使用post方式的话可以通过request.setCharacterEncoding来设定用来解读参数的编码。如果用get方式的话,使用new String(arg.getBytes("iso-8859-1"),"utf-8")的方式来转码。
2.发送ajax请求时,请使用post方式,由于AJAX默认使用utf-8的编码提交参数,因此如果不是文件上传得话,为ajax的Content-Type请求头设置"application/x-www-form-urlencoded;charset="utf-8",以此来通知服务器,客户端发送参数所使用的编码。这样,服务器端可以直接通过String word = request.getParameter("word");来获取经过转码后的参数值,省去了request.setCharacterEncoding。 以上是我的理解,不知道是不是有错的地方,欢迎拍砖
|
|
返回顶楼 | |
发表时间:2009-08-25
学习了......
|
|
返回顶楼 | |