- 浏览: 626219 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (448)
- 字符串相关 (16)
- Struts2页面显示 (15)
- Hibernate错误记录 (6)
- linux命令 (2)
- java项目测试 (5)
- 个人作品 (10)
- hibernate应用 (15)
- struts1 (7)
- 数据库(除了hibernate) (42)
- J2ME/WAP (37)
- servlet/jsp (49)
- java桌面应用+java综合 (14)
- 服务器配置,报错解决 (24)
- Myeclipse配置,抛错解决 (8)
- linux (18)
- JavaScript+jquery+ajax (45)
- div css 页面设计 (16)
- 互联网综合运营 (14)
- 编程工具类 (3)
- 论文 报告 文献 (14)
- PHP (26)
- struts2 (9)
- spring (1)
- 我的IT生活 (14)
- Resin (6)
- java项目记录 (14)
- https安全 (11)
- 支付技术 (3)
最新评论
-
yihaijunyxr:
很好呀,我好久没用iteye了,今天找出两个帐号(yihaij ...
c/c++的监听tmlisten启动缓慢解决 -
yihaijun:
好像这不算是技术博客,是工作博客
c/c++的监听tmlisten启动缓慢解决 -
ml365:
后来还优化了webservice的前置框架,不用cxf,用了另 ...
c/c++的监听tmlisten启动缓慢解决 -
Jayliuying:
有点晚哈 但是也支持一下 楼主
java相关论文的参考文献【转】 -
gqsunrise:
...
我是项目经理,我的项目管理日记【20120229】
网上能找到的办法都试过了,不得不冒昧发此贴求救!症状如下:
从mysql数据库里面拿出来字符串,在页面上显示。全部设置成utf-8,在本地的tomcat上跑,一切正常;
上传到某JSP供应商提供的空间,发现全是乱码,修改IE的编码方式,各种编码方式都是乱码;
此时,mysql里面表都是unicode-general-ci,通过phpmysqladmin可以正常读出其中的中文内容。jsp页面中的 <%@page contentType= "text/html; charset=UTF-8 "> ,meta处也是text/html;charset=UTF-8. JDBC处的连接是 "jdbc:mysql://xxx.xxx.xxx.xxx/sq_euflashdb?useUnicode=true&characterEncoding=gb2312 "
修改JSP里面的 <%@ page language= "java " contentType= "text/html; charset=UTF-8 "> 改成charset=ISO-8859-1,发现此时在IE里面手动修改编码方式为gb2312的话就可以正常显示;
所以此时想让IE那边编码自动设置成gb2312,因此修改meta,但是毫无效果,一切照旧,IE编码还是自动变成ISO,估计是@page那边的ISO-8859-1指定的
希望最好能够都用UTF-8,实在不行的话能不能让IE自动设置成gb2312呢?因为是对方提供的服务器,没有权限修改tomcat或者重装tomcat的。而且通一台服务器上webapps下的另一个项目正常工作,正常返回utf-8啊,百思不得其解!
恳请各位帮忙,能够提供点线索,分不够可另开贴再加!
问题点数:200 回复次数:5 显示所有回复显示星级回复显示楼主回复
j2093
景天
等 级:
发表于:2007-09-21 08:58:101楼 得分:80
引用别人的
告别JSP+MySQL乱码问题zz
【软件环境】:
OS: Windows 2000 SP4, Windows XP SP2,
JDK:j2sdk-1_4_2_08-windows-i586-p.exe,
Tomcat: jakarta-tomcat-5.0.28.exe,
MySQL: mysql-5.0.10a-beta-win32.zip;
--------------------------------------------------------------------
【写在前面的说明】 (必读):
1> 本文将消除乱码分为三步:
> 消除页面乱码,
> 消除从MySQL中读出中文乱码,
> 消除插入MySQL数据库中的中文乱码;
2> 没有测试tomcat-5.5. + jdk5,但我想应该更容易些吧;
3> 先安装J2SDK,后装Tomcat,如果J2SDK安装在c:\j2sdk1.4.2_08,它同时会在C:\Program Files\Java\Jre下安装一个public的Jre,在安装Tomcat时,一定要将JDK指向C:\j2sdk1.4.2_08,否则无法编译JSP;
4> 注意采用本方法后,操作数据库时的相关中文数据无需做额外的字符转换处理,即在所有的字符处理过程中,都以GB2312或GBK来处理;
5> 随本文发行的有两个纯JSP文件和一个SQL脚本,testCh***t.jsp用来测试“消除纯JSP和HTML页面中的乱码”,tstMySQL.jsp用来测试“消除从MySQL中读出中文的乱码”,均无需手工编译,放在任一个Web目录下即可使用。bookshop.sql为tstMySQL.jsp中用到的数据库,也为《隽隽在线书店》中的更新数据库;
6> 在2k中比在XP中看到乱码的情况多一些,表现为在2K中meta标记不起作用,只能使用page指令,具体原因不太清楚,还望赐教。
7> 关于MySQL的客户端功具,个人习惯使用MySQL CC,虽然它已不受支持,但本书中全部脚本(使用My SQL数据库的案例)都可以在MySQL CC中正常运行,有些在mysql-query-browser-1.1.13-win.msi出错;
8> 从MySQL中读出的乱码,如果用MySQL 客户端显示正常而在网页中乱码,在确定数据库连接串中的字符集正确的情况下,把WEB-INF/classes/下,不是你创建的库删除。例如本书《在线书店》就存在此问题,让WEB-INF/classes/目录下只剩bookshop目录,则可解决乱码。
9> 每次修改Bean后,最好重启tomcat,而且最好把Tomcat中Work目录下的相应目录删除,否则可能导致你的修改没有更新,陷入进一步的痛苦中……
10> 修改JSP文件无需重启Tomcat;
11> 用SELECT语句检索出的数据,因为使用Map缓存数据,key是区分大小写的,应统一为大写或小写。但SELECT语句与数据表之间不区分大小写;
如:
strSQL = "SELECT ID, Name FROM BookInfo "
……
rs.getInt( "id "); // 错误
rs.getInt( "ID "); // 正确
12> 新版MySQL中加密密码不应使用password,而应使用MD5或 SHA1;本书《医院门诊》存在此问题,因而无法登录;
13> 如果使用下面几步仍不能消除从MySQL中读出的中文乱码,把WEB-INF\classes\目录下非你自己开发的目录删除,此版发型的《隽隽在线书店》存在此问题;
14> 如果以上方法仍有乱码存在,应该是自己程序的细节问题了,比如有些地方特意调用了编码转换函数,
如 uniStr = new String(tempByte, "ISO8859_1 ");
15> 注意编码表示方式在JSP与MySQL中的区别,如下:
JSP: GB2312, GBK, UTF-8....
MySQL: gb2312, gbk, utf8....
-------------------------------------------------------
关键问题:编码,建议统一为GB2312或GBK,本文使用GB2312,GBK未测试;
【Step1】: 消除纯HTML页和JSP页在Tomcat环境下运行的乱码
这个是由于流览器无法选择编码方式造成的, 手动从IE中选择“GB2312”即可解决;也可以网页中加入META标记或Page指令;
META标记如下:
<meta http-equiv= "Content-Type " content= "text/html; ch***t=GB2312 ">
Page指令如下:
<%@ page language= "java " contentType= "text/html; ch***t=GB2312 " pageEncoding= "GB2312 "%>
前面说明中已经提到, META在2K下可能不起作用(XP下时了时坏),因为简单起见,加入Page指令似乎是一个一劳永逸的事情;
总结: 加入Page指令,一定可以使纯JSP页面或HTML页面在Tomcat环境下正常显示。
【Step2】: 消除从MySQL数据库中读出中文的乱码
分为两个目标: step1: 从MySQL客户端查看中文正常, step2: 从网页中查看中文正常;
1: 在用SQL脚本创建数据库前,设置MySQL的默认编码方式为“gb2312”,
此步可以在mysql-administrator-1.1.0-rc-win.msi中完成,或者是MySQL Server向导;
这样设置完毕后再用SQL 脚本创建数据库, 注意如果SQL脚本中有设置字符集为latin1或utf-8的语句,一定要删除。
已发现目前版本《在线书店》中的SQL脚本中带有设置默认字符集为latin1,一定要删除!
创建数据库完毕后,用MySQL CC或MySQL Admin可检查所创建的数据库的字符集,如果正确,则用MySQL CC或MySQL Admin都可以正常查看中文;
2: 一般情况下,到这一步,在网页中已经基本能正常显示中文了,但凡事总有例外,可以在数据库连接串处再特别说明一下:
String url = "jdbc:mysql://localhost/BookStore?useUnicode=true&characterEncoding=gb2312 ";
conn=DriverManager.getConnection(url, "root ", " ");
一般情况下用 String url = "jdbc:mysql://localhost/BookStore "应该就能正常显示中文。
总结:修改MySQL Server数据库默认字符集为“GB2312”,从MySQL读出中文可正常显示;
例外: 此时仍有可能还有乱码,如本书光盘中的《在线书店》,请参见前面的说明。
【Step3】: 消除插入MySQL数据库中的中文乱码
此步比较简单,在JSP页面中加入如下代码:
request.setCharacterEncoding( "GB2312 ");
fancyou
等 级:
发表于:2007-09-21 11:45:292楼 得分:70
http://blog.chinaunix.net/u/18918/showart.php?id=266854
for_cyan
Cyan
等 级:
发表于:2007-09-21 12:06:203楼 得分:50
恩,url上jdbc:mysql://xxx.xxx.xxx.xxx/sq_euflashdb?useUnicode=true&characterEncoding=gb2312
带上characterEncoding
vive
白起
等 级:
发表于:2007-09-22 14:09:334楼 得分:0
谢谢各位,终于解决了!
是mysql的数据问题,可能mysql存储的是gbk.我把远程的mysql库删掉,重新导入了一遍,就搞定了!谢谢大家!
yeahcheung
等 级:
发表于:2007-10-10 11:48:465楼 得分:0
本机配置的java环境:jdk1.6.0 ,tomcat6.0
在MyEclipse6.0环境调试下通过。
发表地址:请点
在我的日志里,有问题请提问
修改MYSQL数据库,数据表,字段的编码(解决JSP乱码)
要解决JSP乱码,首先就要了解JSP乱码的原因
1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码
2.在PHPMYADMIN或mysql-front等系统 创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码
3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码
4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码
5.用户提交JSP页面的编码与显示数据的JSP页面编码不一致,就肯定会造成JSP页面乱码.
如用户输入资料的JSP页面是big5码, 显示用户输入的JSP页面却是gb2312,这种100%会造成JSP页面乱码
6.字符集不正确
要注意:
1.平时你在某些网站看到的文字可能有几种编码, 如你看到一个繁体字,它有可能是big5编码,也有 可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点.
如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法就是(1)将网站编码设为utf-8,这样可以兼容世界上所有字符, (2)如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为GBK,
GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK
7.JSP连接MYSQL数据库语句指定的编码不正确
8.JSP页面没有指定数据提交的编码,就会造成乱码:
所以,JSP乱码的原因无非就是以上几种,知道原因之后,要解决JSP乱码的方法也容易多了
我们一一来表达:
1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题
2.修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8
3.修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8
4.修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
5.如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可
, //这个正确就无问题了
6.这种情况也是修改页面charset即可,
7.在JSP连接数据库的语句中,
private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK"; //相键要看characterEncoding
8.这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK"); 指定提交的即可
注意:按照以上方法修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上方法改为可以在GB2312的网页正确显示是不可能的, 这种文字内码的变换只能通过另写程序来解决,请WEB745.com其它相关文章
总结:先要判断JSP乱码是插入数据库之后乱码,还是JSP页面刚提交过来就乱码了,如果JSP刚接收上一页面的数据显示就乱码了,肯定是字符集不对,可者没有加request.setCharacterEncoding("GBK");
如果是数据库的原因就参考上面的2,3,4种方法
可能是编码问题
这样连接一下数据库看看
jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
看看能否有效果
发表评论
-
UrlRewrite Filter下载 配置及如何使用【转】
2011-07-15 22:17 14281 下载地址:http://tuckey.org/urlre ... -
getOutputStream() has already been called for this response 解决
2011-04-25 11:35 897java.lang.IllegalStateException ... -
java web工程中获取根目录的方法[转]
2010-12-12 16:27 36241 若是在JSP或是servlet中要获得虚拟根目录的话, ... -
jsp 用urlrewrite 实现URL 重写【转】
2010-12-12 11:22 929是否看到别人的网站网址名都不带后缀名比较酷,比如qq空间的地址 ... -
构建高性能J2EE应用的十个技巧[转]
2010-12-12 11:04 759构建高性能的J2EE应用 ... -
session彻底删除和登录的session相关操作【原创】
2010-12-12 11:03 1020一般我们在做登陆的时候,是需要保持登陆者的一些信息的,登陆 ... -
利用jsp把数据导出到Excle【原创】
2010-12-12 10:34 1338jsp页面里面只需要: <%@ page l ... -
javamail乱码问题【转】
2010-12-11 22:34 1032所谓众口难调,但我 ... -
关于Action里面的跳转方式记录【原创】
2010-12-11 11:00 748我一直忘记了,反正常用的就是那两个吧 一个是: ret ... -
得到时间值java.text.SimpleDateFormat【原创】
2010-12-11 10:50 1060有时候在一些查询的后台,时间作为一个条件是必须的,我们要做 ... -
又一次解决了jsp中文乱码【原创】
2010-12-11 10:45 754这次和数据库有关。数据库里面是乱码,页面的也是乱码。 ... -
想在java文件里用request对象怎么办【原创】
2010-12-11 10:43 1312有时候我们想要在java文件里用request对象,不过j ... -
js跳转页面方法大全,onClick,history,location【转】
2010-12-11 10:38 1296<span id="tiao"> ... -
jsp页面缓存不更新问题解决【原创】
2010-12-11 10:37 2327最近做一个平台,在支付之后余额就会被扣除的,支付成果结果页 ... -
session和request set get Attribute的影响【原创】
2010-12-11 10:35 1120在很多情况下我们都需要封装些数据,以便能在页面跳转之间使用到。 ... -
iframe form 和target的讨论【转】
2010-12-11 10:34 1455刷新主页面中的其中一个iframe,其他内容不变 Soluti ... -
return的作用【原创】
2010-12-11 10:32 1012其实我一直对于return这个功能没有一种很明显的感受。反 ... -
防止浏览器缓存的jsp代码【原创】
2010-12-11 10:27 842//response.setHeader("Ca ... -
org.apache.jasper.JasperException: Invalid directive错误的解决【原创】
2010-12-11 10:24 2613很简单,是因为你的jsp页面引入文件的语句也就是那个几个标签可 ... -
jsp清除session的方法【原创】
2010-12-11 10:16 2433很难吗?不难,一点也难 session.removeAt ...
相关推荐
解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...
JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...
jsp中文乱码问题详解 在jsp中文乱码问题中,乱码的出现是由于编码格式不一致所导致的。在jsp文件中,存在三个地方的编码格式:jsp文件的存储格式、解码格式和控制浏览器的解码方式。如果这三个地方的编码格式不一致...
jsp中文乱码问题解决 jsp中文乱码问题是jsp开发中常见的问题之一,本文将围绕jsp中文乱码问题的解决展开讨论。首先,我们需要了解jsp中文乱码问题产生的原因,然后再讨论解决方案。 jsp中文乱码问题产生的原因是...
总之,解决JSP中文乱码问题的关键在于确保整个请求处理链中的字符编码一致性。从JSP文件编码、HTTP响应到请求参数接收,每个环节都应妥善设置。使用过滤器可以提供一种优雅的全局解决方案,减少重复编码的工作。
本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生的原因 1. 字符集不一致:JSP页面、Servlet、HTML、CSS、JavaScript、数据库等环节如果使用的字符集不统一,容易导致中文字符在...
### JSP中文乱码问题分析及处理方法 #### 一、问题根源剖析 JSP(Java Server Pages)作为Web开发中的一种技术,广泛应用于动态网页的生成。然而,在处理中文字符时,JSP经常会遇到“乱码”问题,即中文字符无法...
在开发Web应用时,尤其是使用Java技术栈如JSP、Servlet与MySQL数据库交互时,中文乱码问题常常困扰着开发者。这个问题的出现主要是由于字符编码不一致导致的,包括数据库编码、连接编码、页面编码等多个环节。下面...
**JSP中文乱码问题详解** 在开发基于Java的Web应用程序时,JSP(Java Server Pages)页面常常会遇到中文乱码的问题。这通常发生在数据的输入、处理或输出阶段,给用户界面带来不便,也增加了开发者的调试难度。本文...
总结来说,解决JSP中文乱码问题的关键在于:明确JSP文件的编码,正确设置HTTP请求的解码,以及统一响应内容和数据库的字符集。同时,要注意在每个可能产生编码转换的环节都要进行适当的检查和配置,以确保数据的完整...
总之,解决JSP中文乱码问题主要在于确定并统一整个系统中的字符集和编码方式。开发者需要关注每个环节,从数据库设置到页面编码,再到参数传递,确保每个步骤都正确处理了字符编码,才能有效地避免乱码现象的发生。
JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-1 作为默认的页面字符编码...
### JSP中文乱码问题最优解决方法 在Web开发中,特别是使用Java Server Pages(JSP)进行网页设计时,中文乱码问题是一个常见的技术挑战。本文将详细探讨如何有效地解决JSP页面中的中文乱码问题,并提供具体的解决...
### JSP Eclipse 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...
通过以上四个步骤,你可以有效地解决JSP中文乱码问题。当请求到达服务器时,Filter会自动设置请求和响应的字符编码,确保数据在传输过程中不发生乱码。同时,Tomcat服务器配置的`URIEncoding`确保URL中的中文字符也...
### JSP中的中文乱码问题解析与解决方案 #### 一、引言 在Web开发过程中,尤其是使用Java Server Pages(JSP)进行页面渲染时,经常会出现中文字符显示乱码的问题。这不仅影响用户体验,也增加了项目的调试难度。...