DROP TABLE IF EXISTS `user`; CREATE TABLE IF NOT EXISTS `user` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(45) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; insert into `user` set name='𠮷1111' ; insert into `user` set name='𠮷2222' ; update `user` set name='𠮷3333' where id=1; save thoes sql in a sql file like query.sql with utf8 encode, and type command like this: mysql -uroot -p test --default-character-set=utf8 < query.sql and you will lost the value of column 'name' : mysql> select * from user; +----+------+ | id | name | +----+------+ | 1 | NULL | | 2 | NULL | +----+------+ 2 rows in set (0.00 sec) >insert into `user` set name='𠮷1111' ; when execute this sql,there is no error and no warning,but just counld not save the column 'name' value into database. >update `user` set name='𠮷3333' where id=1; when execute this sql,database will give me a warning like: Warning: #1265 Data truncated for column 'name' at row 1 you will say the sql include invaild charaster before those number,but i can see it normally with emeditor in utf8 encode and MS Gothic font category. this problem made me so poor for a long time,help me please....