特殊字符的编码问题Latin1-->GBK(看了精华帖,没找到解决的)
这两天我处理一个项目,要把原来4.0.27的库(字符为latin1)的资料转成mysql5.1.46(编码为GBK)
通过以下命令,先导出源数据
mysqldump -uXXX -pXXX -q --default-character-set=latin1 databasename > data.sql
然后到mysql5环境下,查看变量和环境,如下:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
mysql> show variables like '%conn%';
+--------------------------+----------------+
| Variable_name | Value |
+--------------------------+----------------+
| character_set_connection | gbk |
| collation_connection | gbk_chinese_ci |
mysql> show variables like '%colla%';
+----------------------+----------------+
| Variable_name | Value |
+----------------------+----------------+
| collation_connection | gbk_chinese_ci |
| collation_database | gbk_chinese_ci |
| collation_server | gbk_chinese_ci |
+----------------------+----------------+
mysql> show variables like '%chara%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
mysql> create database databasename default character set gbk collate gbk_chinese_ci;
mysql>source data.sql;
========================
结果查看结果时,发现有一些存在特殊字符的中文记录(例如:全角空格),就被截成 '',或有一些特殊字符就变成另外的模样。不知道这个问题怎么解决!烦请高手查看一下,帮忙告知如何处理
另外,我从网上搜到一位仁兄似乎也遇到与我一样的问题(没找到答案):
========================================
我的网站以前使用Mysql默认字符集Latin1,其中有以下用户
'_LINぷNA_'
'_冬ぷ冬_'
'yun'
'╮静茹╭'
'╰╮如云╭╯'
'随风'
这些用户名称目前可正常使用(在Latin1字符集数据库中)
现在我想将数据库转换为gbk字符集,发现上述用户名无法插入数据库,不是被截掉部分内容,就是全部清空。
比如 'yun' 录入后,只有 'yun',
比如 '╮静茹╭' 录入后,字段内容为空。
为什么?
可以解决么?
========================================