遇到乱码问题很久了,一直不知道怎么解决,看了网上有很多这方面的文章,看完后似乎帮助也不大,还是一直悬而未决。
今天终于痛下决心,一定要解决一下。
首先在mysqlcc中查看了一下数据库中创建的表的collation是utf8_general_ci
数据库连接字符串已经加上了useUnicode=true&characterEncoding=UTF-8
jsp的头部已经加上charset=UTF-8
但是从数据库中读出的数据仍然是乱码。
于是使用cmd连上mysql,insert和select中文都是正常的。
突然怀疑是不是数据库创建的根本就不是utf8的。于是做了个试验
首先 set NAMES utf8。然后再从表中select数据,发觉数据居然是乱码。
既然数据库有问题,那么就重新建一个utf8的试试。使用下面的命令
CREATE DATABASE db1
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
use db1;
set NAMES utf8;
重新insert和select中文,却发觉仍然是乱码。实在无法理解。。。。
抱着试试的心理,把NAMES设成了gb2312(set NAMES gb2312;)
居然insert和select中文都是成功的。
set NAMES gb2312下初始话了一下数据库的数据,
启动tomcat,java程序不需要任何修改也再没有乱码的问题了。
至此mysql的乱码问题莫名其妙地得到了解决,但是为什么设置仍然要设成gb2312还是无法理解。
想起一个问题,给日本人做项目的时候,用的是oracle数据库,初始话的sql也是shift-jis的。难道这个地方要设成和本机系统一致的编码?
后来把这个系统移到公司的电脑上跑了一下,居然仍是乱码。考虑到公司电脑的语言选项的高级设置是日语。我创建了一张test表
CREATE TABLE TEST (NAME VARCHAR(20));
然后在
set NAMES sjis
的基础上分别插入一条中文的记录和一条日语的记录,
select出来之后,中文的记录是乱码,日文的记录正常。
至此,初步得出要使用UTF8需要如下几步:
1 创建数据库的时候加上下面的选项:
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
2
数据库连接字符串已经加上了useUnicode=true&characterEncoding=UTF-8
3 jsp的头部已经加上charset=UTF-8
4 通过sql语句直接insert select需要set NAMES [NAMES]
其中[NAMES]为本机的语言选项。中文系统[NAMES]选gb2312, 日文系统选sjis
分享到:
相关推荐
MySql乱码问题解决方法MySql乱码问题解决方法
MySql乱码问题的解决方法,MySql乱码问题的解决方法,MySql乱码问题的解决方法
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
MySQL乱码解决方案数据库乱码MySQL乱码解决方案数据库乱码
解决MySQL数据库乱码问题,以及命令行查表乱码问题
网上很多关于mysql运行sql语句乱码的解决方法,都没有很好的解决这个问题,经本人不断努力,不断尝试,终于解决这个问题。如有这个问题出现,可参考此文档。
nodejs和C语言插入mysql数据库乱码问题的解决方法.docx
关于MySQL中文乱码的解决方法完善版。
MYsql乱码MYsql乱码MYsql乱码MYsql乱码MYsql乱码MYsql乱码MYsql乱码MYsql乱码MYsql乱码
mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码mysql乱码
经过测试,总结版...内容有转载的...
在安装数据库的时候我们会碰到很多的问题,这资料哟助于我们解决mysql的乱码的问题
在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法。
java插入mysql中文乱码解决
mysql-essential-5.0.45-win32.msi mysql-gui-tools-5.0-r12-win32.msi mysql-connector-java-5.0.4-bin.jar MySql数据库中文乱码解决方法 my.ini
乱码问题是很让人抓狂的问题,下面我将记录一下linux下mysql乱码问题的解决方法。 mysql在linux下乱码问题 一、操作 mysql默认字符集是latin1,但是我们大部分程序使用的字符集是utf8,我们就需要修改mysql的字符...
第一种方法,很精辟的总结: 经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧: WINDOWS 下导入应该这样 使用MYSQL的命令
详细的mysql 乱码解决方法 由于前台页面和后台数据库的编码不一致导致的乱码问题的解决方案 给大家共享 希望对朋友们有帮助
jsp中文乱码 jsp mysql 乱码的解决方法.docx
MySQL中文乱码问题解决方案,彻底解决mysql中的中文乱码问题