一, 找出问题的根源
乱码可能出现的地方:

  1. jsp页面中
  2. jsp页面之间相互传参的参数
  3. 与数据库中数据的存取

基本归纳为以上几种.

二, 寻找解决方案

  1. 出现在jsp页面中,是由于没有设置jsp页面的中文字符编码.
  2. 出现在jsp页面之间相互传参,是由于参数没有设置正确的字符编码.
  3. 以上2个问题解决了,那么存到数据库中,自然就不存在乱码。除非你对存入到数据库里的数据再次进行编码.

三, 解决方法

  1的解决方法:

 <% @ page contentType = " text/html;charset=gb2312 " %>

  加上这句解决jsp页面中的中文乱码显示,tomcat编译完后向客户端输出的html文件不是采用中文编码,所以会导致乱码产生。

  2的解决方法:

    2.1

 <% request.setCharacterEncoding("gb2312"); %>

    加上这句解决jsp页面中的中文参数传递乱码。因为浏览器默认使用的编码是“UTF-8”发送请求参数。我们把它改为"gb2312"就ok了。

    2.2

 String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");

    这句的意思是,把传来的参数全部编码转换成gb2312,这样做的缺点是每次传来一个参数都要这样写,很麻烦.

    同样可通过设置server.xml配置文件来实现:      

 < Connector
port ="8080" maxHttpHeaderSize ="8192"
maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75"
enableLookups ="false" redirectPort ="8443" acceptCount ="100"
connectionTimeout ="20000" disableUploadTimeout ="true" URIEncoding ="gb2312" />

    但是这样就应用到整个webapp中去了.

    另,

 <% @page pageEncoding = "gb2312" %> 

    此句是为了让jsp编译器能正确地解码含有中文字符的jsp页面.

  其它方法还可以修改web.xml文件,配置一个过滤器。其原理都一样,只是换种方式而已。有的书上专门写了一个函数来解决乱码,实际上对比一下就知道那种解决方法的好与坏。回过头来一看,解决乱码也不过如此.ok,实际就加上这3句搞定问题:

 <% @page pageEncoding = "gb2312" %>
<% @ page contentType = "text/html;charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>

  今天在部署一个webservices程序的时候,从页面获取数据的servlet出现了乱码问题,在servlet中我已经把request.setCharacterEncoding("GB2312");这段文字加入到代码中去,但是还是出现乱麻问题。到网上找资料,如下:JAVA是Unicode编码,你先转换成ISO8859-1,然后再转换成GBK或是GB2312.

  ref:http://blog.csdn.net/csh624366188/article/details/6657350

  

最新文章

  1. WPF MVVM框架下,VM界面写控件
  2. Android学习计划
  3. Java--笔记(4)
  4. python 获取文件大小,创建时间和访问时间
  5. Linux中的crontab命令用法
  6. swfupload使用说明
  7. NOI2012 美食节
  8. [C++程序设计]指针数组和指向指针的指针
  9. 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
  10. Lambda表达式和Java集合框架
  11. axios中的this指向问题
  12. Java子类访问父类的私有成员变量
  13. 微信小程序——动态设置swiper的高度
  14. 【转帖】2018年Windows漏洞年度盘点
  15. vmware虚拟机三种网络模式的区别
  16. 系统学习(javascript)_基础(数据类型之间的转换)
  17. BZOJ 3956: Count 主席树 可持久化线段树 单调栈
  18. 基于 Lucene 的桌面文件搜索
  19. JavaScript事件的委派与事件的绑定
  20. [device tree] How to decompile a compiled .dtb (device tree blog) into .dts (device tree source).

热门文章

  1. linux 修改目录文件权限,目录文件所属用户,用户组
  2. WebService引擎Axis2完美教程
  3. Linux企业级开发技术(3)——epoll企业级开发之epoll模型
  4. Oracle中使用profile管理用户口令
  5. Win7下IE8无法打开https类型的网站解决方法笔记
  6. 【纯干货】SVN使用时应注意的那些事
  7. poj1017
  8. grep 查找当前文件夹下所有文件内内容 并显示文件名
  9. Python 列表排序方法reverse、sort、sorted详解
  10. evernote出现&quot;Invalid username and/or password&quot;的情况