2012-03-15 3 views
1

私は、ユーザー名、パスワード、および基本情報を格納するDBを持っています。しかし、「情報」は英語の文字のみを格納します。多言語のMySQLクエリを処理するには?

英語、フランス語、ロシア語、中国語、日本語、アラビア語などさまざまな言語でデータを保存するにはどうすればよいですか?私はデフォルトの照合がそれをサポートしていないことに気付きました。

最適な解決策は何ですか。皆さんはどうしたら回避できますか?

+1

utf-8 ---------- –

+0

私はまだ英語以外の言語で奇妙な文字を取得しようとしました。その特定のフィールドの照合順序を設定するだけですか、それ以上実行する必要がありますか? – NoobDev4iPhone

+0

もっと見る例えば、 http://stackoverflow.com/questions/8544312/getting-html-entities-for-all-major-currencies/8544381#8544381リストについて –

答えて

1

データベース全体とテーブルのデフォルトの照合順序をutf8_general_ciに変更します。苦しむ理由はありません(フリーフォームデータのこの種のもの)。

ALTER DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci; 
ALTER TABLE tbl CONVERT TO utf8 
ALTER TABLE tbl CHARACTER SET utf8 COLLATE utf8_general_ci; 

this pageの末尾にあるいくつかのgotchasについて読んでください。

+1

人気のある信念とは対照的に、*照合*は* encoding *とは何の関係もありません! – deceze

+1

MySQLでは、照合はエンコーディングに非常に拘束されています。 'COLLATE utf8_something'を設定すると、' CHARACTER SET utf8'を意味します。これらのUTf-8カラムに格納されたデータを処理できるようにするには、アプリケーションが 'SET NAMES 'utf8''または利用可能な場合にはより良いライブラリへの接続を使用して、MySQLへの接続を介してUTF- (例えばPHPの 'mysql_set_charset'やpython-mysqlの' charset'コンストラクタ引数など)。 – bobince

関連する問題