MYSQL 表中汉字写入或字段赋值时乱码情况排误,mysql赋值
-- 当修改字段值,或是直接写入时,汉字变成乱码情况 ,【可注意一下数据库名,记得修改】 -- 当字符顺序对汉字不兼容时,可能直接导致乱码情况发生。 最好做到库、表、字段(字符类型)排序规则是否一致 -- eg.在某库下建了临时表没有指定字符排序规则,下游会使用时,将临时表中的str字段值赋值给另外一个库表,可能会出现乱码 -- 未指定排序建表时,则表的排序规则是其库的排序规则 -- 1. 库级别 SELECT * -- DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME 关注列 -- utf8 utf8_general_ci FROM information_schema.`SCHEMATA` WHERE SCHEMA_NAME = 'AdDataCenter'; -- 2. 表级别 SELECT * -- TABLE_COLLATION 关注列 -- utf8_general_ci FROM information_schema.`TABLES` t WHERE t.`TABLE_SCHEMA` = 'AdDataCenter' -- 3. 字段级别 SELECT * -- COLLATION_NAME 关注列 -- utf8_general_ci FROM information_schema.`COLUMNS` AS c WHERE c.`TABLE_SCHEMA` = 'AdDataCenter'
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8 再操作就不会乱了
消除乱码
在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
数据库字符集为utf-8
连接语句用这个
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效。
参考资料:百度文库
乱码很难转换成正常的 估计是你的数据库有问题 你排除一下吧
① 首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
② 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
具体操作为:打开mysql安装目录下的my.ini;
找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用ctrl+f定位在文件最前面输入default就会找到,都要改过来;
③ 重启MySQL服务器,在运行窗口输入:net start mysql
④ 最重要的是一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了