论坛首页 Web前端技术论坛

AJAX中文乱码解决

浏览 39674 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (9)
作者 正文
   发表时间:2009-08-25  
之前在处理AJAX时我也碰到类似的问题...转了2次,但最后特殊情况问题还是不能解决.最后是用BASE64来做的,客户端与服务器分开处理....结果OK
0 请登录后投票
   发表时间:2009-08-25  
做Ajax编码方面的操作的时候,应该考虑不同的浏览器,也要考虑工作空间的编码问题,
我做过一个测试,在firefox下没有必要使用转换编码操作.
0 请登录后投票
   发表时间:2009-08-25  
var url = 'policy.do?method=searchSuggest&word=' + encodeURIComponent(str)+"&now="+new Date().getTime(); 
0 请登录后投票
   发表时间:2009-08-25  
所有的地方都用utf-8,包括js文件存储编码。
0 请登录后投票
   发表时间:2009-08-25  
GET方式传中文参数的问题我以前遇到过。
以前有次想做一个中文搜索功能,参数是GET方式传的,因为希望用户可以把搜索结果页面的URL 方便的发给别人,就是在INPUT里输入搜索的中文单词,然后点搜索,然后复制地址栏里的URL,然后粘贴给其他朋友。
后来发现做到所有浏览器都支持太困难了,不知道是不是我至今都没理解。
不同的浏览器对URI的处理不一样,处理时使用的编码也不一样。所以你在FF上的URL复制到另一个浏览器的URL里有可能就会成为无效链接……
不知道我理解的对不对,总之我说的那个程序至今没实现。
0 请登录后投票
   发表时间:2009-08-26  
JSP页面:var para2=encodeURI($("#tx_name").val());
服务器端(也是jsp页面,jsp页面的charset是GBK类型):java.net.URLDecoder.decode(param2,"utf-8");
我是这样的,中文也能获取到,没问题的
0 请登录后投票
   发表时间:2009-08-26  
如果是utf-8编码,就是以get方式提交乱码的问题,在tomcat里配置一下就可以了,URIEncoding='utf-8',哪里都不用转。如果post提交本身就没问题。
0 请登录后投票
   发表时间:2009-08-26  
peacock 写道
文件编码=数据库编码=输出编码=网页编码

正解!
0 请登录后投票
   发表时间:2009-08-26  
adaikiss 写道
peacock 写道
文件编码=数据库编码=输出编码=网页编码

正解!

只有这个是正解,其他的什么转码都是既麻烦,又不通用,现在你解决了中文,如果是日语、中文、西班牙语、英语同时需要的页面呢??utf-8, 所有的html, js, css, servlet全部统一u8,现在的ajax wrapper一般都附带一个字符编码的设置,设成u8就可以了
0 请登录后投票
   发表时间:2009-08-26  
两次encodeURI操作,是把原中文彻底转换成iso8859-1编码进行传输
这样服务器,先通一次UTF8转换,再通过一次java.net.URLDecoder.decode(param2,"utf-8"); 就可以转成中文,这种方式也算是一种中文的终解决方法
0 请登录后投票
论坛首页 Web前端技术版

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