- 浏览: 181182 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
u010244357:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试 -
Abird2Simba:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试 -
javer:
javer 写道代码看着有点乱啊,怎么搞的 sorry,原来是 ...
如何在springMVC 中对REST服务使用mockmvc 做测试 -
javer:
代码看着有点乱啊,怎么搞的
如何在springMVC 中对REST服务使用mockmvc 做测试 -
u011643314:
你用了部分是自己的包,怎么跑呢,先生。
如何在springMVC 中对REST服务使用mockmvc 做测试
ok 乱码了。
乱码第一件事,静下心来,思考一下这乱码出处的流程。
1、后台发页面的乱码。
首先检查下后台打印出来是否是乱码。
数据来源是1)从数据库出来的话,检查数据库里面是否已经乱码了。检查下数据库的字符集。
2)是从文件中读出来的话,一定要注意看是用什么格式读取,文件本身是什么格式编码。
注意了这俩2点,来源就清楚了。
读取文件代码:
注意这样的代码。粗心一看觉得没问题,其实问题多得是。
好了以上问题没有。是页面显示乱码了。
那就看看:1.页面是什么编码。跟response set 的是否一样?
2.tomcat 里面是否加了 Tomcat中的server.xml中的URIEncoding
3.用的struts2 的mvc ,那设置了 <conston name="struts.i18n.encoding" value="utf-8"/>;(此处一定要跟页面编码一致)
如果以上都对了,那就不会有问题了。
2 页面后台发送数据乱码
页面提交到后台,要么是form 表单,要么是ajax .
一般出现乱码的情况都是页面编码跟后台编码不一致造成,页面是utf-8 ,后台是utf-8.那么后台设置
如果页面是gbk或其他形式,那么光靠后台request的设置是没有左右的。
用ajax,或者jquery 的ajax() 提交话,它默认是给你的数据做了encodeURIComponent(data);
他是用的utf-8的编码方式,在页面上,自己提交中文数据的时候还需要手动写一次,也就是2次encodeURIComponent(data);
然后在后台
附上点代码
数据比较大的时候一定要用post .而不能用get get传输数据最大的长度约2k。超过就会直接返回请求错误。
还见过一些这样的错误 (错误写法):
url 后面?xxx=xx 其实还是用的是get 方式,post 的争取写法应该给个data参数!
java 接受参数
如此检查 防止乱码!
乱码第一件事,静下心来,思考一下这乱码出处的流程。
1、后台发页面的乱码。
首先检查下后台打印出来是否是乱码。
数据来源是1)从数据库出来的话,检查数据库里面是否已经乱码了。检查下数据库的字符集。
2)是从文件中读出来的话,一定要注意看是用什么格式读取,文件本身是什么格式编码。
注意了这俩2点,来源就清楚了。
读取文件代码:
try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8")); while(true){ String line = br.readLine(); if(line!=null){ sb.append(line+"\n"); }else{ break; } } br.close(); //response.setCharacterEncoding("UTF-8"); //注意这里要在getWriter()之前。 PrintWriter out = response.getWriter(); //response.setContentType("text/html"); response.setContentType("text/html;charset=utf-8"); //写这里是没有任何作用的!!!!!! System.out.println("sb:"+sb.toString()); //这么转化一下是否有必要? String des = new String(sb.toString().getBytes("UTF-8"),"UTF-8"); System.out.println("des:"+des); out.print(des); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { System.out.println("文件读取错误"); e.printStackTrace(); } return null;
注意这样的代码。粗心一看觉得没问题,其实问题多得是。
好了以上问题没有。是页面显示乱码了。
那就看看:1.页面是什么编码。跟response set 的是否一样?
2.tomcat 里面是否加了 Tomcat中的server.xml中的URIEncoding
3.用的struts2 的mvc ,那设置了 <conston name="struts.i18n.encoding" value="utf-8"/>;(此处一定要跟页面编码一致)
如果以上都对了,那就不会有问题了。
2 页面后台发送数据乱码
页面提交到后台,要么是form 表单,要么是ajax .
一般出现乱码的情况都是页面编码跟后台编码不一致造成,页面是utf-8 ,后台是utf-8.那么后台设置
request.setCharacterEncoding("uft-8")以后就不会乱码。
如果页面是gbk或其他形式,那么光靠后台request的设置是没有左右的。
用ajax,或者jquery 的ajax() 提交话,它默认是给你的数据做了encodeURIComponent(data);
他是用的utf-8的编码方式,在页面上,自己提交中文数据的时候还需要手动写一次,也就是2次encodeURIComponent(data);
然后在后台
URLDecoder.decode(content, "utf-8");解码。这样来解决乱码的问题。
附上点代码
function submitContent(){ var content = $("#txt").val(); var newcon = encodeURIComponent(content); //post 提交方式 $.post("<%=basePath%>pkg_updatePage", { rootpath: allPath, content: newcon }, function(data){ var ll = confirm("are you sure?"); if(ll==true){ }else{ return; } }); }
数据比较大的时候一定要用post .而不能用get get传输数据最大的长度约2k。超过就会直接返回请求错误。
还见过一些这样的错误 (错误写法):
var allPath ; function geteditData(name){ var path =rootPath+name; allPath = path; $.ajax({ async: false, cache: false, type:"POST", //post! dataType: "text", contentType:"application/x-www-form-urlencoded;charset=gbk", url: "<%=basePath%>pkg_readPage?rootpath="+path, //?xxx=xxx success : function(data){ //alert(typeof(data)); $("#txt").val(data); }, error: function(){ alert("trsData = error") } }); }
url 后面?xxx=xx 其实还是用的是get 方式,post 的争取写法应该给个data参数!
java 接受参数
//更新文件 public String updatePage() throws UnsupportedEncodingException{ request.setCharacterEncoding("gbk"); String fiePath = request.getParameter("rootpath"); String content = request.getParameter("content"); String newcontent=null; try { //编码 newcontent = URLDecoder.decode(content, "utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } FileWriter fw; try { fw = new FileWriter(new File(fiePath)); fw.write(newcontent); fw.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("更新成功"); return null; }
如此检查 防止乱码!
发表评论
-
使用 cxf axis1.x axis2 开发WebService
2014-02-26 14:50 1294cxf======================== ... -
基于red5 dsj 的java 处理视频流和一些疑问
2013-06-19 16:17 5587最近夭折了一个项目,由于我预研失败,同时我将被惩罚,被外派去 ... -
5分钟 熟练使用spring Aop
2013-06-09 09:56 4784声明:所有的5分钟系列博客都停留在使用的基础上,具体原理, ... -
5分钟 玩转google Gson
2013-06-05 17:18 10964google gson 是一个非常轻量的java 对象与j ... -
如何在springMVC 中对REST服务使用mockmvc 做测试
2013-06-05 09:06 46704spring 集成测试中 对mock 的集成实在是太棒了! ... -
边读边写【7】 ----java 多线程实战【Thread /Executors】
2012-04-20 17:04 1768前面2个月一直忙碌,但是还是不忘在iteye 上发发帖子,写写 ... -
struts2 上传下载模板
2012-04-20 09:38 2717第一 struts2 更新比较慢。核心的xwork 基本不变。 ... -
struts2 上传下载模板
2012-04-18 22:21 0struts2下载文件时出错提示:java.lang.Clas ... -
java乱码补充 : 移植乱码 问题
2012-04-18 12:00 1580上一篇: jquery ajax struts2 数据库等中 ... -
java 内存的管理 转载▼
2012-04-17 16:39 1475java 内存的管理 转载▼ 内存的管理(1) 使用Ja ... -
边读边写【6】 ----序列化和反序列化
2012-04-16 15:26 0边读边写【6】 ----序列化和反序列化 -
边读边写【5】 ----java 并发包
2012-04-09 15:09 0java 并发包里面的几个常用的东西 ConCurrentH ... -
边读边写【2】 ----java 集合包之深入Map
2012-04-09 11:49 0Collection 中还有一个Set 但是常用的Set 都是 ... -
边读边写【3】 ----java 集合包之各个集合性能分析
2012-04-10 09:38 1858上次主要看了Map接口,以及Map的选择地址: 。http:/ ... -
边读边写【1】 ----java 集合包之深入List
2012-04-09 11:14 2524一、java 集合包最常用 ... -
hadoop的1TB排序
2012-04-09 09:22 1413hadoop的1TB排序 作者:nos ... -
java 调用lame.exe 将 wav 进行MP3压缩的一些问题
2012-03-05 10:24 5644首先下载附件 lame.exe copy到d 盘,因为代码默认 ... -
使用DES 加密方式对文件进行加密!!!
2012-01-14 17:07 7989DES加密由于在java中非常 ... -
java 大小端存储模式 转化
2012-01-14 16:52 14430所谓的大端模式:是指数据的高位,保存在内存的低地址中,而数据 ... -
myeclipse import sun.misc.BASE64Encoder与sun.misc.BASE64Decoder导入错误
2012-01-09 19:05 2181原因你的jre是myeclipse自带的,不是你安装jdk时候 ...
相关推荐
jquery+asp ajax 中文乱码问题解决文档
MVC Struts2框架搭建,Jquery Ajax异步数据交互,内涵需要的jar包及ppt讲解
jquery_ajax操作数据库 jquery是很好用的javascript框架
Struts2+jQuery ajax的一个商品小系统Struts2+jQuery ajax的一个商品小系统
NULL 博文链接:https://huibin.iteye.com/blog/586035
这圣思园张老师的一个上课演示文件,讲的是struts2+jquery+Ajax实现异步交互的简单例子。
Jquery与struts2,利用Jquery脚本,通过ajax方式向struts后台提交数据.
Struts2 与Jquery Ajax的json数据交换的典型范例
Struts2 jQuery Ajax 单页面增删改查,附带Mysql数据脚本!
json.js+json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar3个ajax需要的包 ,打包发送.
struts2 json jquery ajax实现用户登陆及业面跳转
用ajax访问struts2的action,操作数据库,实现对商品记录进行删除操作;对商品记录进行修改操作;动态添加商品记录;商品的全选功能;实现商品的批量删除功能以及全选功能;
struts2+jquery+ajax实现了文件的异步上传,的MyEclipse编写的简单项目
此是简单几个技术集成..只完成了简单功能,测试可行.适合刚接触的童鞋,
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
Struts2整合jQuery实现Ajax功能
struts2 + jquery +ajax 登录验证
jquery + struts1 + ajax学习例子
ajax struts jquery json 实现从数据库回调下拉菜单
JQuery AJAX 中文乱码问题解决,需要的朋友可以参考一下