日期:2014-05-16  浏览次数:20875 次

MySQL utf8存储 GBK读取
我的MySQL数据库用的是清一色的utf8,见表语句如下,存储引擎MyISAM,但是我把该表的三个相关文件拷贝给一个朋友,他的数据库安装时选得时GBK(没改过)。在他那里中文可以正常显示,按照我的想法是,我的数据表用的是utf8,他用GBK读出来应该是乱码。为什么没有乱码。而且在他那里查看该表的信息依然是utf8的。求解释。

mysql> show create table ip \G
*************************** 1. row ***************************
  Table: ip
Create Table: CREATE TABLE `ip` (
  `start` bigint(21) unsigned DEFAULT NULL,
  `end` bigint(21) unsigned DEFAULT NULL,
  `location` varchar(100) DEFAULT NULL,
  `organization` varchar(100) DEFAULT NULL,
  UNIQUE KEY `ip_start_index` (`start`),
  UNIQUE KEY `ip_end_index` (`end`),
  KEY `ip_start_end_index` (`start`,`end`),
  FULLTEXT KEY `ip_location_index` (`location`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show variables like "%char%";
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\MyInstall\share\charsets\ |
+--------------------------+------------------------------+
8 rows in set (0.00 sec)



------解决方案--------------------
set names 'gbk';

http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
------解决方案--------------------
设置过了?
------解决方案--------------------
文件改成utf8格式的
------解决方案--------------------
探讨
按照我的想法是,我的数据表用的是utf8,他用GBK读出来应该是乱码。

------解决方案--------------------
对不起,没看清你的题目。
以上解释作废

在你拷表给他的时候,如果这个表的字符集是UTF8,拷到那边字符集不会变化,即使设定的默认字符集为GBK。
MYSQL允许不同的表,不同的字符集
------解决方案--------------------
建表语句中已经带有字符集设置了,当然就指定了 utf8 了,而客户端会根据系统设置、客户端设置及服务器端设置的字符集进行显示,如果碰巧也是用 utf8 显示那就显示正确了。我使用的 Navicat 客户端默认会使用服务器端的配置,这个表指定 utf8,所以客户端也会使用同样的字符集显示。其它客户端也应该有差不多的功能吧。
------解决方案--------------------
在你的建表语句里,指定了字符集 CHARSET=utf8。所以不会乱码。

比如,你一个word文件,里面写了写文字。从中文系统拷贝到日文希望,也不会乱码。
------解决方案--------------------
我是来打酱油的