免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7567 | 回复: 5
打印 上一主题 下一主题

[JDBC 乱码]JSP连接MySQL乱码问题,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 15:12 |只看该作者 |倒序浏览
在命令行下面能够正常插入读取汉字,但是在jsp中插入汉字在表中会变成问号,jsp读取在命令行下手工插入的汉字也会变成问号。

连接设置
DATA_BASE_DRIVER        = org.gjt.mm.mysql.Driver
DATA_BASE_URL           = jdbc:mysql://localhost:3306/OurData?useUnicode=true&characterEncoding=GBK&autoReconnect=true

JSP页面设置
<%@ page contentType="text/html;charset=ISO8859_1" %>

tomcat为5.0.28版本。

数据库字符设置(默认)
mysql> select version();
+-----------+
| version() |
+-----------+
| 4.1.10a   |
+-----------+
1 row in set (0.00 sec)

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

mysql> show variables like 'collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql>

随后修改mysql的启动参数,均无效。
/usr/bin/mysqld_safe  --defaults-file=/etc/my.cnf --default-character-set=gbk --pid-file="$mypidfile"

/usr/bin/mysqld_safe  --defaults-file=/etc/my.cnf --default-character-set=utf8 --pid-file="$mypidfile"

/usr/bin/mysqld_safe  --defaults-file=/etc/my.cnf --default-character-set=gb2312 --pid-file="$mypidfile"


请知道的说说,谢谢~~!!

[ 本帖最后由 yejr 于 2005-12-8 08:53 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-08 16:22 |只看该作者
sorry
顶起来。。。

论坛徽章:
0
3 [报告]
发表于 2005-12-09 18:00 |只看该作者
我也遇到这样的问题呀。请知道的指点一下。不胜感激。顶起来。不过试一下:修改启动参数后重建TABLE看看再操作会不会有问题。我没试过的。

论坛徽章:
0
4 [报告]
发表于 2005-12-10 13:27 |只看该作者
我那服务器不能上网,很麻烦。
每次只能去之前把可能的解决方案,可能需要的工具都准备好。
但是都用完了还搞不定,就只能回来重新想办法。
现在已经去了四次了。。。。本来就菜,越发讨厌java了,准确的说是java做web

论坛徽章:
0
5 [报告]
发表于 2005-12-14 16:51 |只看该作者

数据库的字符集设为 latin-1就行了

我的数据库字符集设为 latin-1,tomcat5.5.12中页面(JSP)要指定为 8859_1

论坛徽章:
0
6 [报告]
发表于 2005-12-15 20:05 |只看该作者
转自:http://www.ideawu.net我的经验,你可以试一下。
方法如下:(注意,数据库中文问题十分复杂,别人的方法不一定适合你,但你一定能找到一种最适合你的方法)
      对于Linux+Tomcat+JSP+Mysql,我的Mysql是character set  latin1(连接值)latin1(全局值),我没改my.ini(my.cnf),这些都是默认的。Tomcat也是默认的。对于Linux来说,我用zh_CN.UTF-8的locale,不过用GB2312或者GBK都可以。
     注意了,你保存的源代码建议你保存为UTF-8编码格式(在Linux下的gedit,kedit在保存时有选项)。在Windows下,你试用Editplus或者UltraEdit试一下,应该也有这个选项。
     连接数据库时,jdbc:mysql://localhost:3306/admin? useUnicode=true&characterEncoding=utf8或者把utf8换为gb2312也行,不过不要再改变了!
     在JSP源码中,第一行写上:
     <%@ page contentType="text/html; charset=UTF-8" %>(告诉Tomcat你的源代码是UTF-8编码保存的)
     注意UTF-8的大小写,不确定的话查手册。如果你保存时编辑器选用屯GB2312,就把UTF-8改为GB2312。然后在<head>与   </head>之间的第一行(其他行未试)写上
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">(告诉浏览器你的代码是UTF-8格式的)UTF-8与上面的对应,若上面为GB2312,这里也为GB2312,后面假设你用UTF-8;
     在读取表单之前,写上一句:
     request.setCharacterEncoding("UTF-8");(告诉JVM?/Tomcat?你要读取的信息的UTF-8格式的,与你的源代码存储格式一样。)
     就可以这样读取表单了:
     member_name=new String(request.getParameter("name"));
     我这样做,没问题。你不妨试一试。如果有问题,请留言。
     希望对你有帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP