我做的是把实时库中的数据通过程序导入到历史库mysql中,然后能通过EXCEL查询到历史库的数据。所以我通过在VS中把中文数据导入到了mysql的一个表中,在通过ODBC把数据库中的数据导入到EXCEL时,中文就变成乱码了。但是在DOS窗口中却能正确显示中文。请问这是怎么一回事?谢谢大家帮忙。
输入show variables like 'character%';时得到的结果如下:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | gb2312
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\chars
ets\ |
我也看了很多贴子上说 set names 'gbk';但是我输入改变了字符集的格式后,DOS窗口中显示乱码,导出的EXCEL也是乱码了,谁能帮忙看下。
输入show variables like 'character%';时得到的结果如下:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | gb2312
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\chars
ets\ |
我也看了很多贴子上说 set names 'gbk';但是我输入改变了字符集的格式后,DOS窗口中显示乱码,导出的EXCEL也是乱码了,谁能帮忙看下。
SET NAMES gb2312
再导入试试
MySQL 中文显示乱码
SHOW CREATE TABLE tbl_name
+-------------------+---------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------------------------------------------------+
| Table | Create Table
|
+-------------------+---------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------------------------------------------------+
| daily_kv_03032011 | CREATE TABLE `daily_kv_03032011` (
`id` int(10) DEFAULT NULL,
`sd` int(10) DEFAULT NULL,
`stn_descr` varchar(45) DEFAULT NULL,
`sbus_descr` varchar(45) DEFAULT NULL,
`kv` float DEFAULT NULL,
`isbus` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------------------+---------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------------------------------------------------+
最好导出所有表,在统一字符集的下重新插入记录
我只需要set names 'gbk';就行了吗?
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | gbk
|
| character_set_connection | gbk
|
| character_set_database | gb2312
|
| character_set_filesystem | binary
|
| character_set_results | gbk
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+设置成这样行吗