MYSQL的编码问题

fjtiexue 2009-04-08 11:45:58
定义introduce是varchar(400)
但是插入字“喆”或者“槃”都不成功、、
网上查了是中文编码的问题,

数据库中有个table叫作picture,有个列叫作introduce

就用ALTER TABLE `picture` CHANGE `introduce` `introduce` VARCHAR( 400 ) CHARACTER SET gbk COLLATE gbk_bin NULL DEFAULT NULL;语句,在我本机成功了,可以插入上面说的那些个字(“喆”或者“槃”)

但是我登陆另一台机子就不行,同样的数据库,同样的语句,都是ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gbk COLLATE gbk_bin NULL DEFAULT NULL;虽然执行这条语句成功了,但是我插入那几个字就是不成功,,,,

在那另一台机子我也试了其他的字符编码,就像utf8,Latin1等等,我用ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;或者ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET utf8 COLLATE utf8_chinese_ci NULL DEFAULT NULL;或者ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL;等等都不行,,,
两台机子的mysql的配置文件my.ini都一样,都是default-character-set=gbk

不知道这是为啥了? 研究了一晚上,实在搞不懂了,还请各位大虾帮忙啊。。。。
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iasky 2009-04-23
  • 打赏
  • 举报
回复
使用GBK就可以了,gb2312不行
mengshan1986 2009-04-16
  • 打赏
  • 举报
回复
是你的mysql编码问题了,如果是gb2312当然出错了可以选择gbk或utf8

配置mysql编码:
mysql -u root
>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
修改mysql的配置文件my.cnf
nano /etc/mysql/my.cnf
windows下mysql使用的配置文件是my.ini
有3个地方需要动的
[client]下面加上
default-character-set=gbk
[mysqld]下面加上
default-character-set=gbk
init_connect='SET NAMES gbk'
保存后重启mysql
phpboy 2009-04-13
  • 打赏
  • 举报
回复
我试了一下gbk行,utf8也行!
my.ini里面设置的是默认编码,是在你没有设置编码方式的时候就使用那个默认的编码,如果你设置的就没用了,my.ini里的就没用了
hqaht 2009-04-13
  • 打赏
  • 举报
回复
ding
fjtiexue 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 phpBoy005 的回复:]
我试了一下gbk行,utf8也行!
my.ini里面设置的是默认编码,是在你没有设置编码方式的时候就使用那个默认的编码,如果你设置的就没用了,my.ini里的就没用了
[/Quote]

对呀,我用gbk或者utf8在我本机上测试是可以的呀,但是到了服务器上就不行了,就是很奇怪都是同样的mysql语句,为啥执行的结果不一样,一个可以成功,一个失败!@

还有哪个配置可能出问题吗?

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧