mysql导入字体数字没有问题但导致汉字中文有问题我们就可以从字符编码问题来解决了,下面我来给大家介绍一下关于mysql乱码问题的处理方法.
1、脚本语句:导入之前,先charset gbk.
修改表字段编码,注意,这里用导入的方式插入的数据,控制台会报错,在我们的客户端工具中执行,就不会报错了.
2、MyBatis中,xml文件引入成为mapper的配置.
3、写junit测试类的时候,中文数据不能正常读取.
解决办法:字符串连接参数要添加一下.
修改my.ini文件:用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开,然后Ctrl+F搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的.
修改my.ini,添加以下语句:
- [client]
- default_character_set=utf8
- [mysqld]
- character-set-server = utf8
- collation-server = utf8_general_ci
- [mysql]
- default_character_set=utf8
重启mysql服务,再次运行,然后保存,重启mysql服务,如果服务器设置没问题,只是php连接时出mysql乱码我们可参考下面方法解决.
在mysql_connect后面加一句SET NAMES UTF8 或是GBK,根据数据库的设定而定,代码如下.
数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因,这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用如下代码:
mysql_query("SET NAMES GBK")2 或 mysql_query("SET NAMES GB2312")2
例子代码如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass)2
mysql_query("SET NAMES 1UTF81")2 //UTF8 这个就是你mysql字符编码了
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。下面将分两部分,分别设置服务器编码和数据库、数据表与连接部分的编码,从而杜绝中文乱码的出现。
服务器编码设置方法有二:
一是安装mysql时,其中会有一个步骤选择编码方式,此时选择gbk即可。如果不选择,默认的编码是latin1;
二是在安装玩mysql之后,手动修改其配置文件,如下:
(1)修改 MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置
(2)修改data目录中相应数据库目录下的db.opt配置文件
DROP TABLE IF EXISTS `test`.`test_nml`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = gbk;
CREATE TABLE `test`.`test_nml` (
`id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`content` VARCHAR( 255 ) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='用户基本信息';
SET character_set_client = @saved_cs_client;
SET @saved_cs_client = @@character_set_client;
set names gbk;
insert into test_nml values(null,'我是中文');