mysqlgbk不支持中文吗_【转载】mysql 不支持中文解决办法

一)不能显示中文解决办法:

1:windows平台,因为windows操作系统默认的是用了gb2312这个字符,而mysql在安装的时候,

默认的是客户端和服务器都用了latin1,所以这就导致一个字符集和字符校验不匹配的问题,

这个时候只需要找到mysql的配置文件my.ini 找到default-character_set ,把他的参数改

成gb2312就可以了,一共有两个这样的参数,一个是对客户的,一个是服务器的,我一般建

议是把服务器的设置成国际通用的字符utf8。

2: linux平台,在linux平台上安装mysql的时候,给于的自由度是很大的,你可以在安装

选项./configure中找到数据库的字符设置(这个还要麻烦你自己看readme安装文件 ),这个时

候最好是把字符设置成gbk,因为这个字符集也是linux平台默认安装的中文字符集,然后

在/etc下找到my.cnf文件(这个文件在安装mysql后要自己把他转移到/etc/下,除非你是

rpm安装).需要注意的是linux里的很多工具都是不支持中文的,哪怕是vi,你可以在startx

后执行命令kwrite,来编译文件,这个图形变异软件有一个选项是可以把你所写的东西转换

成任意的字符集,很不错,

二)不能插入中文解决办法:

查看表的结构:

mysql> show create

users;

ERROR 1064 (42000): You have an error in your SQL syntax; check

the manual that

corresponds to your MySQL server version for the right syntax to

use near 'users

' at line 1mysql> show create table users;

+-------+-----------------------------------------------------------------------

------------------------------------------------------------------------------+

| Table | Create Table

|

+-------+-----------------------------------------------------------------------

------------------------------------------------------------------------------+

| users | CREATE TABLE `users` (

`userid` int(11) default NULL,

`username` char(20) character set latin1 default NULL

) ENGINE=InnoDB DEFAULT CHARSET=gbk |

+-------+-----------------------------------------------------------------------

------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> desc users;

+----------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------+----------+------+-----+---------+-------+

| userid | int(11) | YES | | NULL | |

| username | char(20) | YES | | NULL | |

+----------+----------+------+-----+---------+-------+

2 rows in set (0.02 sec)

这时向表中插入中文然后有错误。

mysql> insert into users values(88,'中文');

ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4'

for column 'usern

ame' at row 1

mysql> insert into users values(88,'中文');

ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4'

for column 'usern

ame' at row 1

还要更改users表的username的字符集。

mysql> alter table users modify username char(20)

character set gbk;

ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4'

for column 'usern

ame' at row 1

mysql> alter table users modify username char(20)

character set gbk;

ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4'

for column 'usern

ame' at row 1

因为表中已经有数据,所以更改username字符集的操作没有成功

清空users表中的数据  mysql> truncate table

users;

Query OK, 3 rows affected (0.01 sec)

从新更改user表中username的字符集  mysql>

alter table users modify username char(20) character set gbk;

Query OK, 0 rows affected (0.06 sec)

Records: 0 Duplicates: 0 Warnings: 0

这时再插入中文字符,插入成功。  mysql>

insert into users values(88,'中文');

Query OK, 1 row affected (0.01 sec)

mysql> select * from users;

+--------+----------+

| userid | username |

+--------+----------+

| 88 | 中文 |

+--------+----------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值