java hssfworkbook 乱码_java各种乱码汇总
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各种乱码汇总相关推荐
- java 奇数中文乱码_java web 乱码 整理
众所周知 java 程序使用的是Unicode 编码字符集,是说java内存里面使用Unicode字符集操作文字,java内存外当然使用的是程序员自己制定的字符集,如果程序员没有指定字符集,那么会使用 ...
- java 对象乱码_java对象乱码怎么办
java对象乱码怎么办,乱码,方式,数据库,要用,解决办法 java对象乱码怎么办 易采站长站,站长之家为您整理了java对象乱码怎么办的相关内容. java对象乱码的解决办法:1.文件下载乱码时,下 ...
- java 空格乱码_java 中文乱码以及空格乱码解决方案总结
当使用response.write返回JSON数据到前端时,需要在前面加上这句 response.ContentType = "text/html;charset=gb2312"; ...
- java为什么全是乱码_java一切乱码的解释 以及源头
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 InputStreamReader in = new InputStreamReader(new FileInputStream("demo.t ...
- java 页面编码_java中文乱码解决之道(七)-----JSP页面编码过程
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. 在上面代码中有两个地方存在编码:pageEncodi ...
- java encode乱码_java 中文乱码问题的解决
java中的中文乱码问题应该是我们经常碰到的一个问题,今天就来总结下对于乱码问题的解决方法: 1. 超链接中带有的中文字符,添加 这样如果不进行处理在后台得到的数据就会出现中文乱码的问题,由于超链接实 ...
- java web 乱码_java web乱码解决方法
设置文件的保存编码格式,这个一般在新建项目时,设置了GBK的编码格式,这时文件的页面编码格式是GBK的,而保存格式是ANSI的,后来把项目及文件的编码格式改为utf-8的编码格式后,依然出现中文乱码, ...
- c与java的中文乱码_Java 中文乱码问题总结
由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问 题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题.于 ...
- java word 乱码_java word 乱码怎么办,_Java_ 少侠科技
详细内容 java word 乱码怎么办? Java另存Word并解决乱码问题* 专家意见另存word *@YaoWei *2014-6-16 下午12:09:07 * @param request ...
- java utf8乱码_java utf-8 乱码怎么办
java utf-8 乱码怎么办? 1.在html首部编写如下代码: 推荐教程:<java学习> pageEncoding="utf-8"%> 示例如下: pag ...
最新文章
- LSD快速直线检测的原理概要及OpenCV代码实现(CV类LineSegmentDetector)
- 时间序列分类算法简介及其在能耗数据分类上的应用
- android 标题图标,android 中 actionbar 常用方法。设置标题,隐藏图标等
- 一个微信公众号接入另一个微信公众号的内容
- 一般向量空间的基变换_线性代数的本质03 矩阵与线性变换
- mysql最大述_MySQL优化(1):Mysql简述
- netbsd apache php mysql,NetBSD配置aria2的web前端YAAW笔记
- 软件工程:可行性分析,需求分析思维导图
- 2021-08-04——实践项目1(书本案例)
- Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
- .Net使用FlashPaper
- 面对失败计算机科学家,面对巨大挫折,仍毫不畏惧、坚韧不拔的名人事例
- ARM Cortex-M3/M4内核相关
- SCI文章下载、选刊、分区查询—起飞站
- Managed Beans
- 物联网卡技术的8种通信协议
- 【经历史】风口上的雷军,小米是他最后一次创业~~传奇人生
- 【阿里云IoT+YF3300】15.阿里云物联网小程序构建
- jython podcast cool isnt't it?
- java ip调天气预报接口_java调天气预报接口