2011-07-25 70 views
3

我直接在mysql客户端执行此操作。我想要做到以下几点:如何使用insert语句将unicode字符插入到mysql中?

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

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

回答

3

使用mysql控制台,我可以将你的unicode字符粘贴到插入命令中,并且mysql接受它。这里有一个我使用你的数据的测试:

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

我的db使用默认编码(latin1)。

你试过把它们粘在里面吗?你有什么错误?

+0

问题是我把它们编码为\ uXXXX而不是实际的字符,我有一个已经有大量的插入语句。 –

+0

哦。我误解了这个问题。答案是目前没有办法编码unicode字符:) – Bohemian

+0

好吧,谢谢,我想我需要编写一个小程序来阅读这些语句,并用java自己编码。 –

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'); 
+0

我可以做到,但是在两者中,它都会插入文本“u5c40u5c42”而不是两个unicode字符。 –

+0

另外,让我澄清一点,我可以使用java插入和选择unicode数据,但我希望能够将一些插入语句粘贴到mysql客户端并想知道如何格式化它们。 –

+0

您使用的是什么版本的MySQL? – Crewe

0

这取决于你正在编程什么,或者直接处理数据库。你只是试图从querybrowser或其他工具直接插入,或者你是通过一个web应用程序来做到这一点。如果第二种,那么webapp使用的是什么语言。如果它是一个.NET应用程序,你可以尝试设置字符连接字符串中设置即字符集= UTF8

如果你正在做的PHP的东西,然后看看这个链接http://randomchaos.com/documents/?source=php_and_unicode

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

相关问题