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

  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

  

jsp中文乱码终极解决方法(转)的更多相关文章

  1. jsp中文乱码终极解决方法

    转载http://blog.csdn.net/csh624366188/article/details/6657350 一 找出问题的根源    乱码可能出现的地方:1 jsp页面中          ...

  2. ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用

    [摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...

  3. php 使用phpmailer 发送邮件(附带中文乱码的解决方法)

    下载phpmailer ,在程序里包含class.phpmailer.php 类  ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...

  4. xShell终端中文乱码完全解决方法

    xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...

  5. MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法

    一.Java和jsp 中文乱码原因和解决方法: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因有两方面: 第一方面:J ...

  6. Mysql命令行中文乱码的解决方法

    环境:Windows 8 64位,Mysql  5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...

  7. 30. CentOS终端命令行显示中文乱码的解决方法

    安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为   代码如下: LANG="zh_CN.GB18030&qu ...

  8. windows下SVN日志反馈中文乱码的解决方法

    转自:https://shiyousan.com/post/635889908703806636 TortoiseSVN中文乱码的问题困扰了我好久,特别是每次使用“以标准差异文件显示修改”时,打开的文 ...

  9. 【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法

    在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者 ...

随机推荐

  1. [BZOJ 1303] [CQOI2009] 中位数图 【0.0】

    题目链接:BZOJ - 1303 题目分析 首先,找到 b 的位置 Pos, 然后将数列中小于 b 的值赋为 -1 ,大于 b 的值赋为 1 . 从 b 向左扩展,不断算 Sum[i, b - 1] ...

  2. Sereja and Suffixes

    Codeforces Round #215 (Div. 2) B:http://codeforces.com/problemset/problem/368/B 题意:给你一个序列,然后查询i--n中没 ...

  3. BAT互联网公司是如何内部推荐的?

    中国十大互联网公司 注:以上按照目前市值排序整理出来,当然还有更多未上市的潜力股.如:美团.豆瓣.豌豆荚.美图秀秀等等 各大互联网公司招聘官网 阿里招聘:https://job.alibaba.com ...

  4. 利用Java反射机制完成XML到对象的解析

    对于一些小批量的数据,如果采用数据库来存取的话,未免有点大题小作,使用XML文件是个不错的方法,尤其是在一些Web应用中,经常需要缓存一部分数据,如果将这些数据形成XML文件,解析后放入一个Hasht ...

  5. 服务器端打开office然后采用虚拟打印 转换成pdf

    服务器端打开office然后采用虚拟打印 转换成pdf [WebMethod] public bool ConvertWordTOPDF(string WordPath) { bool ret=fal ...

  6. 数据结构(KD树):HDU 4347 The Closest M Points

    The Closest M Points Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 98304/98304 K (Java/Ot ...

  7. 后缀自动机(SAM) :SPOJ LCS - Longest Common Substring

    LCS - Longest Common Substring no tags  A string is finite sequence of characters over a non-empty f ...

  8. HttpContext.Current.Cache 和 HttpRuntime.Cache 区别

    原文地址:http://blog.csdn.net/avon520/article/details/4872704 .NET中Cache有两种调用方式:HttpContext.Current.Cach ...

  9. [Locked] Paint House I & II

    Paint House There are a row of n houses, each house can be painted with one of the three colors: red ...

  10. 学习AngularJs:Directive指令用法

    跟我学AngularJs:Directive指令用法解读(上) http://blog.csdn.net/evankaka/article/details/51232895 跟我学AngularJs: ...