mysql不识别某些字的问题
像“喆”,“槃”这些字就不行,上网查了,也大概知道是字符编码的问题有个数据库中的table是picture,中有个列是introduce 我在本机调试,用ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gb2312 COLLATE gb2312_bin NULL DEFAULT NULL;语句执行成功了,而且可以插入“喆”,“槃”这2个字...
但是我在另一台机子上调试,就不可以,同样的数据库,同样的语句,都是ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gb2312 COLLATE gb2312_bin NULL DEFAULT NULL;虽然这个语句执行成功,改为了gb2312编码,但是却不能成功插入“喆”,“槃”这2个字.....两台机子的mysql的配置文件my.ini都一样,其中default-character-set=gb2312;都是这样的我也试过用其他的编码,像utf8,latin1等等,都不行,虽然ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;都执行成功,但就是不能插入“喆”,“槃”这2个字...我就很奇怪了,同样的数据库,同样的语句,为啥结果就不一样了...请各位大虾帮帮忙...已经研究了一个晚上,还是没有结果...
像“喆”,“槃”这些字就不行,上网查了,也大概知道是字符编码的问题有个数据库中的table是picture,中有个列是introduce 我在本机调试,用ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gb2312 COLLATE gb2312_bin NULL DEFAULT NULL;语句执行成功了,而且可以插入“喆”,“槃”这2个字...
但是我在另一台机子上调试,就不可以,同样的数据库,同样的语句,都是ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET gb2312 COLLATE gb2312_bin NULL DEFAULT NULL;虽然这个语句执行成功,改为了gb2312编码,但是却不能成功插入“喆”,“槃”这2个字.....两台机子的mysql的配置文件my.ini都一样,其中default-character-set=gb2312;都是这样的我也试过用其他的编码,像utf8,latin1等等,都不行,虽然ALTER TABLE picture CHANGE introduce introduce VARCHAR( 400 ) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL;都执行成功,但就是不能插入“喆”,“槃”这2个字...我就很奇怪了,同样的数据库,同样的语句,为啥结果就不一样了...请各位大虾帮帮忙...已经研究了一个晚上,还是没有结果...
解决方案 »
- 一个MySql查询语句
- 如何导出用户表 100分 急
- 高分求助,jsp 访问 mysql ?
- 请教一个很简单的问题
- postgresql 中如何返回错误码?
- 关于mysql用户权限的问题!
- 安装:MYSQL V4.0.15 For Windows 急!!!!!!!!!!!
- linux下安装mysql,启动时出错,说什么关于mysql.sock的问题?高手请进!!!
- 创建表的问题,怎么反复都不成功呢?
- [跪求解决]百度服务器BCC下用yum安装的mysql5.7.20无操作运行数小时自动shutdown
- Mysql中有没有定义所有数据类型的系统表?sqlserver有systypes
- 在windows下无法启动mysql该怎么办
怎么看有没有装gb2312字库? 看phpinfo中都没有,我在数据库操作前又加了一句set names gb2312;还是不行....
该字段字符集必须设为gbk, utf8才能存他们。并且客户端的字符集也要设为gbk , set names gbk按以上方法,就OK了。
gb18030 > gbk > gb2312提示:能用智能拼音输入的都为gb2312, 输不进去的,肯定不在gb2312字符集里。在mysql中
字段字符集 优先于 表字符集 优先于 数据库字符集 优先于 默认字符集设置以上字符集 只能确保 数据库能存储该字符集如果要正确的输入和显示, 必须设置正确的连接字符集 ,所以set names xxx要设置正确。在mysql, 即使存储字符集无法包含该字,插入也不会提示错误,只是把这些字忽略了。
依然不行,我在服务器上设置set names gbk还是不行...
不知道在客户端的字符集也要设置成GBK,是什么意思?怎么操作的?
+----+
| 喆 |
+----+
| 喆 |
+----+
1 row in set (0.00 sec)
mysql> insert into t1 values ('喆');
Query OK, 1 row affected (0.08 sec)mysql> select * from t1;
+------+
| f |
+------+
| aa |
| 中文 |
| 喆 |
+------+
3 rows in set (0.00 sec)mysql> show create table t1;
+-------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------+
| t1 | CREATE TABLE `t1` ( `f` varchar(30) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> show variables like 'char%';
+--------------------------+---------------------------------------------------------+
| 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 | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)mysql>
按照上述方法检查一下你的表,对话的字符集设置和变量。
有些是这工具的问题.你在dos下用mysql录入吧, 最能说明问题.