jsp连mysql,一切ok,就是中文存入和读出都是???乱码
网上找了找资料,还是没解决问题,回答得都很乱,几乎绝望了!
所以请哪位高手帮忙做个小的原形,只要最简单的写入中文字符和读出并显示在jsp页面上即可。一定要没乱码!
请将原形发至此邮箱,试验一旦通过,立即给分,决不食言!谢谢!
网上找了找资料,还是没解决问题,回答得都很乱,几乎绝望了!
所以请哪位高手帮忙做个小的原形,只要最简单的写入中文字符和读出并显示在jsp页面上即可。一定要没乱码!
请将原形发至此邮箱,试验一旦通过,立即给分,决不食言!谢谢!
是不是这个意思?
String url="jdbc:mysql://61.152.93.153:3306/xuekaodb?useUnicode=true&characterEncoding=gb2312"
在试试
现在我都晕了,好象存入数据库的时候要有一次代码转换,从数据库中读出的时候也要有一次转换。而且好象对request.getParameter来的参数的转换和对数据库中取出的数据的转换还不一样。晕
2,在每一页前面加上<%request.setCharacterset("GBK");%>应该就可以啦
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| 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)
上面列出的值就是系统的默认值。默认是latin1的瑞典语排序方式当我们按照原来的方式通过jsp存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,
你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:SET NAMES 'gbk';它相当于下面的三句指令:
SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = gbk;
数库连接JDBC使用
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=GBK如果你的数据库是UTF-8可能你要使用
jdbc:mysql://localhost:3306/jbbs?useUnicode=true&characterEncoding=utf8
找到你的ini文件。修改default-character-set=gb2312