注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

有你做翅膀,孤单都是坚强

生命中总要经历曲折,或许是我们不愿意,突然到最后走不通,想重新来过,记录每件小事

 
 
 

日志

 
 
关于我
K24

曾经的生涩,曾经的懵懂,曾经的自恋,都随风去吧。。。

网易考拉推荐
 
 

JAVA开发乱码问题总结  

2016-09-21 14:39:52|  分类: @java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

常见编码:

ASCII编码是目前计算机中用得最广泛的字符集及其编码。ISO8859-1可以表示的是西欧语言。Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。通常我们所遇到过UTF-8这是Unicode编码的实现方式。GB2312字集是简体字集;BIG5字集是台湾繁体字集;GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号GB18030是国家制定的一个强制性大字集标准,它的推出使汉字集有了一个统一的标准。Linux系统默认使用的是ISO-8859-1编码,Win32系统默认使用的是GB2312编码。Java的内核和class文件是基于unicode

常见乱码问题解决:

1.jsp与页面参数之间的乱码

强制指定request获取编码的方式:request.setCharacterEncoding(“GBK”)如果jsp输出到页面出现乱码:response.setCharacterEncoding(“GBK”)或者在web.xml中配置servlet过滤器filter

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. JavaScriptAjax乱码的避免,注意JavaScript默认是ISO8859的编码,避免JS/AJAX乱码和GET一样,不要在 URL里面使用中文,实在避免不了,就只能在生成链接的时候转码,SetCharacterEncodingFilter过滤器不会进行编码过滤。

4. 如果在本项目中采用了get方式提交请求并附加参数,结果导致编码乱码,原因是Tomcat默认请求编码是ISO8859,需要在Tomcat的配置文件 server.xml添加一个参数,URIEncoding=”UTF-8”,这样请求中附件的参数就会以UTF-8来进行编码。

5.超长汉字Get乱码,超长的汉字做为参数传递仍然会出现乱码问题,解决方法是采用java.net.URLEncoder Encode方法强制转码:<a href="http://li.yin.zhen.blog.163.com/TestAction.do?name=<%= java.net.URLEncoder.encode("你好","UTF-8")%> 

  评论这张
 
阅读(13)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017