1.Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。 ContentType属性指定响应的 HTTP内容类型。如果未指定 ContentType,默认为TEXT/HTML。 下面的示例将 ContentType 属性设置为其他的常见值。 2.pageEncoding是jsp文件本身的编码

contentType的charset是指服务器发送给客户端时的内容编码

JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。 3.对字符串进行编码和解码: 1.String str = "张三" ;   2.byte[] jiema= str.getBytes("gb2312") ; //解码   3.String   bianma = new String(jiema,"UTF-8");//编码 如果上面的解码不对 可能出现问题   解码这个必须知道是什么码才能解了,页面ajax传值的编码是iso8859-1 3.请求响应的编码request.setCharacterEncoding("utf-8"); 4.response.setContentType("text/html;charset=utf-8"); 5.关于ie文件上传的文件名乱码问题,解决办法: fileName = java.net.URLEncoder.encode(fileName, "ISO-8859-1");可以设置成ISO-8859-1编码解决。 6.转码 String name = request.getParameter("name")==null?"":URLDecoder.decode(request.getParameter("name"),"utf-8");//分类名称

get请求中文参数乱码 clickValue = URLDecoder.decode( (new String(req.getParameter("clickValue").getBytes("ISO8859-1"), "UTF-8")), "UTF-8"); 7.乱码问题 1.var name=document.myForm.username.value;   2.var url="Ajax.do?method=check&name="+encodeURI(encodeURI(name));   3.xmlHttp.open("GET",url,true);   4.action中   5.String name = request.getParameter("name");   6.name = URLDecoder.decode(name, "UTF-8");   7.//servlet返回数据时,将字符编码设置为utf-8就可以了,因为Ajax只支持utf-8   8.response.setContentType("text/xml;charset=utf-8");   9.PrintWriter out = response.getWriter();   10.out.print(result);

7.处理请求参数传递编码问题:

java中编码:URLEncoder.encode(strUri,"utf-8"); java中解码码:URLDecoder.decode(strUri,"utf-8"); 8.js中编码: encodeURIComponent(strUri);encodeURI(strUri);escape(str); js中解码: decodeURIComponent(strUri);decodeURI(strUri);unescape(str);

9.各种情况的乱码 jsp与页面参数之间的乱码 强制指定request获取编码的方式:request.setCharacterEncoding(“GBK”) 如果jsp输出到页面出现乱码:response.setCharacterEncoding(“GBK”) 或者在web.xml中配置servlet过滤器filter web.xml: CharacterEncodingFilternet.vschool.web.CharacterEncodingFilterencodingGBKCharacterEncodingFilter/* 10.2.java与数据库之间的乱码 直接使用unicode与数据库进行交互,可以在驱动的url中指定,如mysql驱动: Jdbc:mysql://localhost/SRC?useUnicode=true&characterEncoding=GBK 3.java与文件流之间的乱码 FileInputStream/FileOutpuStream是基于字节流(byte)的,常用于读写二进制文件。 FileReader/FileWriter是基于字符(char)的。这两个类的构造函数默认使用系统的编码。 使用它们的父类InputStreamReader/ OutputStreamWriter可以指定编码类型。 InputStreamReader(InputStream in, Charset cs) 和OutputStreamWriter(OutputStream out, Charset cs) 四、解决乱码问题的注意事项   1.一个新的系统,从页面到数据库再到配置文件,建议统一使用UTF-8 2.setCharacterEncodingFilter只对post请求有效,get一律忽略 3. JavaScript和Ajax乱码的避免,注意JavaScript默认是ISO8859的编码,避免JS/AJAX乱码和GET一样,不要在 URL里面使用中文,实在避免不了,就只能在生成链接的时候转码,绝对不能想当然的认为SetCharacterEncodingFilter会帮你做什 么事情。 4. 如果在本项目中采用了get方式提交请求并附加参数,结果导致编码乱码,原因是Tomcat默认请求编码是ISO8859,需要在Tomcat的配置文件 server.xml添加一个参数,URIEncoding=”UTF-8”,这样请求中附件的参数就会以UTF-8来进行编码。 5.Ajax请求乱码 使用Ajax,JS也是默认使用ISO8859编码,所以在进行请求时遇到中文参数需要进行编码,如:var url = "GetSelectListAction.do?queryData=subTrade" + "&queryId=" + encodeURI(obj.value) + "&r=" + Math.random();这里有两个地方需要注意:第一个地方是encodeURI(),方法,可以将参数进行转码,默认是转化为UTF-8,如果需要转为其他码制,需要在方法中添加第二个参数。第二个地方是Math.random(),由于Ajax有缓存机制,在接受请求的时候第一时间先判断该请求的地址是否被访问过,如果被访问过则 直接使用缓存中的内容返回,这个东西很讨厌,客户在访问过一次出错后以后每次出现的都是这个错误,所以在请求中给其增加一个时间戳,只要可以随机生成一个 不同的字串就可以,保证Ajax每次都去访问服务器。 5.超长汉字Get乱码 超长的汉字做为参数传递仍然会出现乱码问题,解决方法是采用java.net.URLEncoder的 Encode方法强制转码:

java hssfworkbook 乱码_java各种乱码汇总相关推荐

  1. java 奇数中文乱码_java web 乱码 整理

    众所周知 java 程序使用的是Unicode 编码字符集,是说java内存里面使用Unicode字符集操作文字,java内存外当然使用的是程序员自己制定的字符集,如果程序员没有指定字符集,那么会使用 ...

  2. java 对象乱码_java对象乱码怎么办

    java对象乱码怎么办,乱码,方式,数据库,要用,解决办法 java对象乱码怎么办 易采站长站,站长之家为您整理了java对象乱码怎么办的相关内容. java对象乱码的解决办法:1.文件下载乱码时,下 ...

  3. java 空格乱码_java 中文乱码以及空格乱码解决方案总结

    当使用response.write返回JSON数据到前端时,需要在前面加上这句 response.ContentType = "text/html;charset=gb2312"; ...

  4. java为什么全是乱码_java一切乱码的解释 以及源头

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 InputStreamReader in = new InputStreamReader(new FileInputStream("demo.t ...

  5. java 页面编码_java中文乱码解决之道(七)-----JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. 在上面代码中有两个地方存在编码:pageEncodi ...

  6. java encode乱码_java 中文乱码问题的解决

    java中的中文乱码问题应该是我们经常碰到的一个问题,今天就来总结下对于乱码问题的解决方法: 1. 超链接中带有的中文字符,添加 这样如果不进行处理在后台得到的数据就会出现中文乱码的问题,由于超链接实 ...

  7. java web 乱码_java web乱码解决方法

    设置文件的保存编码格式,这个一般在新建项目时,设置了GBK的编码格式,这时文件的页面编码格式是GBK的,而保存格式是ANSI的,后来把项目及文件的编码格式改为utf-8的编码格式后,依然出现中文乱码, ...

  8. c与java的中文乱码_Java 中文乱码问题总结

    由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问 题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题.于 ...

  9. java word 乱码_java word 乱码怎么办,_Java_ 少侠科技

    详细内容 java word 乱码怎么办? Java另存Word并解决乱码问题* 专家意见另存word *@YaoWei *2014-6-16 下午12:09:07 * @param request ...

  10. java utf8乱码_java utf-8 乱码怎么办

    java utf-8 乱码怎么办? 1.在html首部编写如下代码: 推荐教程:<java学习> pageEncoding="utf-8"%> 示例如下: pag ...

最新文章

  1. LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)
  2. 时间序列分类算法简介及其在能耗数据分类上的应用
  3. android 标题图标,android 中 actionbar 常用方法。设置标题,隐藏图标等
  4. 一个微信公众号接入另一个微信公众号的内容
  5. 一般向量空间的基变换_线性代数的本质03 矩阵与线性变换
  6. mysql最大述_MySQL优化(1):Mysql简述
  7. netbsd apache php mysql,NetBSD配置aria2的web前端YAAW笔记
  8. 软件工程:可行性分析,需求分析思维导图
  9. 2021-08-04——实践项目1(书本案例)
  10. Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  11. .Net使用FlashPaper
  12. 面对失败计算机科学家,面对巨大挫折,仍毫不畏惧、坚韧不拔的名人事例
  13. ARM Cortex-M3/M4内核相关
  14. SCI文章下载、选刊、分区查询—起飞站
  15. Managed Beans
  16. 物联网卡技术的8种通信协议
  17. 【经历史】风口上的雷军,小米是他最后一次创业~~传奇人生
  18. 【阿里云IoT+YF3300】15.阿里云物联网小程序构建
  19. jython podcast cool isnt't it?
  20. java ip调天气预报接口_java调天气预报接口

热门文章

  1. opengl在windows中使用最新的opengl
  2. 小马Win7永久激活工具—OemY3.1 NT6通用完美激活
  3. 《越狱》的中国隐秘流行
  4. 计算机网络知识点整理
  5. matlab求解数学题,MATLABR2013a求解数学问题
  6. 内容管理系统CMS学习总结
  7. Windows程序设计:使用VS2010创建窗口程序
  8. 计算机网络与通信之物理层中的数据传输
  9. Dynamics AX2012 Menu Items Type
  10. 疯狂java 李刚 pdf_Java开发教程 – 《疯狂Java讲义第4版》PDF及代码+李刚