晓爱 发表于 2008-6-22 23:50:18

mysql 设为UTF8编码 无法输入中文

CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`type_name` varchar(50) character set utf8 NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


MY.INI


default-character-set=UTF8
.....
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=UTF8


但现在只要是插入带中文的记录就出错?
E:
INSERT INTO type(type_name)value('中文');
无法插入中文记录?
那位兄弟帮帮忙我才学:MYSQL .PHP...
因为PHP里一定要UTF8

kider 发表于 2008-6-24 10:08:42

在插入之前,使用语句试试:
set names utf8;

kider 发表于 2008-7-3 10:17:17

我安装你提供的脚本做的实验,结论是可以,贴出详细步骤,供你参考:

mysql> use pubdb;
Database changed
mysql> CREATE TABLE `type` (
    -> `id` int(10) unsigned NOT NULL auto_increment,
    -> `type_name` varchar(50) character set utf8 NOT NULL default '',
    -> PRIMARY KEY (`id`)
    -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> show create table type;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                     |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| type| CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`type_name` varchar(50) NOT NULL default '',
PRIMARY KEY(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> set names utf8;   ----此时可以不用管my.cnf配置文件中是否配置了字符集,默认即可。
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%char%" ;
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client   | utf8                     |
| character_set_connection | utf8                     |
| character_set_database   | gbk                        |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                     |
| character_set_server   | gbk                        |
| character_set_system   | utf8                     |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql> INSERT INTO type(type_name)value('中文');
Query OK, 1 row affected (0.00 sec)

mysql> select * from type;
+----+-----------+
| id | type_name |
+----+-----------+
|6 | 中文    |
+----+-----------+
1 row in set (0.00 sec)

mysqlkumao 发表于 2008-8-28 12:26:39

好:victory:

killer 发表于 2009-8-18 22:22:38

不对啊。。
我安装的时候选择的是:utf8
试了一楼的方法命令行还是插入不了中文
insert into一句错误

killer 发表于 2009-8-18 22:25:06

我安装的是MySql5.1.37

fenng 发表于 2009-9-14 19:42:05

第一步:修改my.ini文件 将里面的default-character-set=latin1修改为default-character-set=utf8(注意,my.ini文件中有两个default-character-set)
第二步:将里面的sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE "中的STRICT_TRANS_TABLES去掉.重启一下mysql服务,然后就可以插入中文了。
页: [1]
查看完整版本: mysql 设为UTF8编码 无法输入中文