jsp中文乱码终极解决方法(转)
一, 找出问题的根源
乱码可能出现的地方:
- jsp页面中
- jsp页面之间相互传参的参数
- 与数据库中数据的存取
基本归纳为以上几种.
二, 寻找解决方案
- 出现在jsp页面中,是由于没有设置jsp页面的中文字符编码.
- 出现在jsp页面之间相互传参,是由于参数没有设置正确的字符编码.
- 以上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中文乱码终极解决方法(转)的更多相关文章
- jsp中文乱码终极解决方法
转载http://blog.csdn.net/csh624366188/article/details/6657350 一 找出问题的根源 乱码可能出现的地方:1 jsp页面中 ...
- ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用
[摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...
- php 使用phpmailer 发送邮件(附带中文乱码的解决方法)
下载phpmailer ,在程序里包含class.phpmailer.php 类 ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...
- xShell终端中文乱码完全解决方法
xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...
- MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法
一.Java和jsp 中文乱码原因和解决方法: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因有两方面: 第一方面:J ...
- Mysql命令行中文乱码的解决方法
环境:Windows 8 64位,Mysql 5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...
- 30. CentOS终端命令行显示中文乱码的解决方法
安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为 代码如下: LANG="zh_CN.GB18030&qu ...
- windows下SVN日志反馈中文乱码的解决方法
转自:https://shiyousan.com/post/635889908703806636 TortoiseSVN中文乱码的问题困扰了我好久,特别是每次使用“以标准差异文件显示修改”时,打开的文 ...
- 【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法
在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者 ...
随机推荐
- ios入门之c语言篇——基本函数——4——数值交换函数
一个常用函数,被整理出来,免得每次 都要写 参数返回值解析: 参数: *a:int*,需要交换值的第一个变量: *b:int*,需要交换值的第二个变量: 返回值: (无) 函数解析: swap(&am ...
- VC版本的MakeObjectInstance把WNDPROC映射到类的成员函数
这段时间用VC封装Windows类库,没有MakeObjectInstance处理窗口消息确实不爽,又不想使用MFC的消息映射,这玩意的效率和美观只能呵呵. 至于MakeObjectInstance是 ...
- “adb server is out of date. killing.... ADB server didn't ACK * failed to start daemon * ”
草泥马的adb: “adb server is out of date. killing.... ADB server didn't ACK * failed to start daemon * ” ...
- The Cow Lexicon(dp)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7290 Accepted: 3409 Description Few k ...
- 原生JavaScript拖动div兼容多种浏览器
说句题外话,虽然博客园嵌入式氛围不行,Web前端氛围还是很好的.我又从 chinaunix 回来了. <html> <head> <script type="t ...
- HTML全局属性
属性 描述 accesskey 规定激活元素的快捷键. class 规定元素的一个或多个类名(引用样式表中的类). contenteditable 规定元素内容是否可编辑. contextmenu 规 ...
- POJ 1417 True Liars
题意:有两种人,一种人只会说真话,另一种人只会说假话.只会说真话的人有p1个,另一种人有p2个.给出m个指令,每个指令为a b yes/no,意思是,如果为yes,a说b是只说真话的人,如果为no,a ...
- zznu 1052 前n项和
这算是循环的入门题目了,因为n 是小于 10 的非负数,所以可以知道结果不过超出int范围. 等式左边的数每次自增一个a,可以用一个变量来表示 na = na * 10 + a, 意思就是每循环一次就 ...
- mysql数据类型介绍
一.int.bigint.smallint 和 tinyint的区别详细介绍 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854 ...
- 斜堆,非旋转treap,替罪羊树
一.斜堆 斜堆是一种可以合并的堆 节点信息: struct Node { int v; Node *ch[]; }; 主要利用merge函数 Node *merge(Node *x, Node *y) ...