2011-10-25 13 views
1

私は英語とスペイン語を話すためにMySQLを使用してPHP5アプリケーションを構築しています。キャラクタセットと照合順序をUTF8に設定し、すべてをmbstringでデータベースに変換する必要がありますか?または、英語とスペイン語の両方をサポートするラテン文字セットを使用する必要がありますか?このアプリケーションは厳密に米国のみであり、国際的な言語の全範囲をサポートする必要はありません。英語とスペイン語にはどのようなMySQL照合/文字セットを使用しますか?

私はCodeIgniterをほとんどのプロジェクトで使用しています。私はちょうどCIデータベースの設定に気づいた。

$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 

だから、私はこれらの2つの設定が良いと思われます。私は、データベースとテーブルの任意の照合設定とMySQLデータベースの文字セットをリセットする必要があると仮定?

+0

utf8 + utf8_latin_ci – Johan

+0

utf8を使用してください。現在サポートしている言語の数にかかわらず、utf8を使用すると、PHBが必然的に多くの言語を追加する際に文字セット変換の必要性がなくなります。 –

答えて

4

文字セットをデータベースのの両方でUTF8に設定します。

データベースのすべてのテーブルで照合utf8_latin_ciを使用します。

参照:http://dev.mysql.com/doc/refman/5.5/en/charset-general.html

+0

私の理解から、照合は比較に影響します。比較の観点から、uft8_latin_ciはLIKE検索を多かれ少なかれ一致させますか? AはÀ、Âなどと一致しますか? – jjwdesign

+1

照合順序はソート順**および**に影響します。何が何にマッチするかを100%確信していない。私はいくつかの実験を提案する。私は「A」は「À」、「Â」とは一致しないと思う。 – Johan

+1

phpMyAdminにutf8_latinが表示されないのは、MySQLの新機能ですか? – jjwdesign

2

私はポルトガル語を話すので、私は私のhtmlヘッダ内のデータベースのためのutf8_general_cicharset=UTF-8を使用して、私はそれが通信中のutf8照合を強制的にリンクを開き、私の接続クラスの一連のコマンドを実行します。 。これにより、パフォーマンスには影響しませんので、使用している言語に関係なく使用できます。

関連する問題