Jquery ajax 与weblogic 服务器
程序员文章站
2022-03-26 23:02:10
...
最近 公司项目 从tomcat 迁移到 weblogic 上
于是乎 出现了 乱码问题
这里要说的 是前台ajax 请求 服务器端 响应回去的 数据 汉字乱码的问题
在网上 翻了 很久 都是 说了些治标不治本的 大道理 ,每一个 实际解决问题的上来贴贴代码 整个例子的
看不过去 外加 运气好 让我蒙出来了 就来 和大家分享下
首先 说下 项目 是 WSH 前台 jsp 后台 java 都是 GBK编码
好了 环境说完了 开始 直接上代码
这是 JQuery 的ajax 成功后 回调函数
这里要说下的是 这个 ajax 不写dataType ,如果非要写 也要写成 dataType:'text'
接下来是 java 端的
解释下:因为 JQuery 的 ajax 需要 UTF-8的编码 所以这里转过去
然后 一切 结束
顺便提一下 tomcat 默认 编码是 ISO-8859-1 所以 java端想 js传的时候 就要专成 相应的编码
而 ajax 短 的 dataType 是 json 就可以了 也不用 decodeURL 什么乱七八糟的了
于是乎 出现了 乱码问题
这里要说的 是前台ajax 请求 服务器端 响应回去的 数据 汉字乱码的问题
在网上 翻了 很久 都是 说了些治标不治本的 大道理 ,每一个 实际解决问题的上来贴贴代码 整个例子的
看不过去 外加 运气好 让我蒙出来了 就来 和大家分享下
首先 说下 项目 是 WSH 前台 jsp 后台 java 都是 GBK编码
好了 环境说完了 开始 直接上代码
success : function(data) { data = decodeURIComponent(decodeURIComponent(escape(data)))
这是 JQuery 的ajax 成功后 回调函数
这里要说下的是 这个 ajax 不写dataType ,如果非要写 也要写成 dataType:'text'
接下来是 java 端的
String str= java.net.URLEncoder.encode(json.toString(),"UTF-8");
解释下:因为 JQuery 的 ajax 需要 UTF-8的编码 所以这里转过去
然后 一切 结束
顺便提一下 tomcat 默认 编码是 ISO-8859-1 所以 java端想 js传的时候 就要专成 相应的编码
而 ajax 短 的 dataType 是 json 就可以了 也不用 decodeURL 什么乱七八糟的了