如何使用insert语句将unicode字符插入mysql?

时间:2011-07-25 16:57:42

标签: mysql

我在mysql客户端直接这样做。我想做以下事情:

INSERT INTO MYTABLE VALUES(1,12,'\u5c40\u5c42');

所以它会插入两个unicode字符。如果可能的话,我想在不使用其他编程语言的情况下这样做,我只想将我的插入语句粘贴到mysql客户端。

4 个答案:

答案 0 :(得分:7)

您的表数据类型是什么? char还是varchar?你的问题不是很清楚,你从那条线上得到错误吗?您可能遇到过:http://dev.hubspot.com/bid/7049/MySQL-and-Unicode-Three-Gotchas

修改

这三个页面中的相当多的信息应该能够提供帮助: http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html

http://dev.mysql.com/doc/refman/5.5/en/string-syntax.html

http://dev.mysql.com/doc/refman/5.5/en/charset-literal.html

但我也看到了这个:

INSERT INTO mytable VALUES (1, 12, _ucs2'\x5C40\x5C42');

答案 1 :(得分:4)

使用mysql控制台,我可以将你的unicode字符粘贴到insert命令中,mysql接受它。这是我使用您的数据进行的一点测试:

CREATE TABLE xx (col1 varchar(20));
insert into xx values ('局层');
select * from xx;
+---------+
| col1    |
+---------+
| 局层   |
+---------+

我的数据库使用默认编码(latin1)。

你试过粘贴它们吗?你有什么错误,如果有的话?

答案 2 :(得分:0)

这取决于您使用的是什么,或者只是直接处理数据库。您只是尝试从querybrowser或其他工具执行直接插入,还是通过Web应用程序执行此操作。如果是第二个,webapp使用什么语言。如果是.net应用程序,您可以尝试在连接字符串中设置字符集,即charset = utf8

如果您正在使用php进行操作,请查看此链接http://randomchaos.com/documents/?source=php_and_unicode

您还可以将数据库上的默认字符集设置为UTF-8。不确定这将如何影响当前数据,因此请务必在更改数据库之前备份所有内容。

答案 3 :(得分:0)

使用MySQL Workbench

  1. Alter您要在其中插入unicode的该列的表。
  2. 将该列的Collation更改为utf8-default collation
  3. Apply设置,您可以插入unicode。

MySQL Workbench Screenshot