2011-07-25 6 views
3

私はこれをmysqlクライアントで直接行っています。私は次のことをしたい:mysqlにinsert文を使用してUnicode文字を挿入するにはどうすればよいですか?

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

それで2つのユニコード文字が挿入されます。可能であれば、他のプログラミング言語を使用せずにこれをやりたいのですが、私はinsert文をmysqlクライアントに貼り付けるだけです。

答えて

3

mysqlコンソールを使用して、私はあなたのユニコード文字を挿入コマンドに貼り付けることができ、mysqlはそれを受け入れます。

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

My dbはデフォルトのエンコーディング(latin1)を使用しています。

貼り付けてみましたか?どのようなエラーがありますか?

+0

を試してみてください。問題は、それらが実際の文字としてではなく\ uXXXXとしてエンコードされていることです。すでに挿入文の巨大なリスト。 –

+0

ああ。私はその質問を誤解した。答えは現在、Unicodeの文字をエンコードする方法はありません:) – Bohemian

+0

ok、ありがとう、私は文を読んで、javaで自分自身をエンコードするための小さなプログラムを書く必要がありますね。 –

7

テーブルデータの種類は何ですか? charまたはvarchar?あなたの問題は明らかではありません、あなたはその行からエラーが出ますか?あなたは経験しているかもしれません:http://dev.hubspot.com/bid/7049/MySQL-and-Unicode-Three-Gotchas

EDIT:情報の

かなりは助けることができる必要があり、これらの3つのページ内にある: 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

私はそれを作ることもできますが、両方で、2つのユニコード文字の代わりに "u5c40u5c42"というテキストを挿入します。 –

+0

また、Javaを使用してユニコードデータを挿入して選択することができることを明確にしたいが、いくつかの挿入文をmysqlクライアントに貼り付けることができ、それらをフォーマットする方法を知りたい。 –

+0

あなたはどのバージョンのMySQLを使用していますか? – Crewe

0

これはプログラミングする内容やデータベースを直接扱うかどうかによって異なります。あなたは単にquerybrowserやその他のツールからストレートな挿入をしようとしているのですか?それとも、Webアプリケーション経由でこれをやっていますか? 2番目の場合、webappはどの言語を使用していますか?それはあなたがPHPで何かをやっている場合、このリンクでhttp://randomchaos.com/documents/?source=php_and_unicode

を見てみましょうつまり文字セット= utf8を

接続文字列に文字セットを設定してみてくださいすることができます.NETアプリであればまた行くことができるとデータベースのデフォルト文字セットをUTF-8に設定します。これがどのように現在のデータに影響を与えるかわからないので、データベースを変更する前にすべてをバックアップしてください。

関連する問題