私のシステムはスペイン語のデータを扱います。私はlaravel + mysqlを使用しています。私のデータベースの照合順序はlatin1のです - デフォルトの照合と私のテーブルの構造は次のようになります。私は、ファイルからDBにデータをロードするPHP + MySQL +スペイン語
:
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) CHARACTER SET latin1 NOT NULL, ) ENGINE=InnoDB AUTO_INCREMENT=298 DEFAULT CHARSET=utf8mb4;
は、いくつかの質問を持っています。 dbに挿入する前に、 utf8_encode($ name)にするのがよいでしょうか?私は現在、そのほかの いくつかの比較スローエラーをしています:
SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation '='
はutf8_encodeを使用して移動するための方法である場合は、私が検索したいにも名をはutf8_encodeする必要がありますか?すなわち、選択...名前= utf8_encoded(名前)?
上記の処理に欠陥や改善策がありますか?私が初めてスペイン語をやっているとき(アクセント付きの文字)。
MySQLのVARCHARはデフォルトでUTF8であったため、使用することは期待できませんでした'utf8_encode'を利用します。 –
@MartinParkinは、utf8エンコーディングなしでデータを挿入するとエラーが発生します。 =フィルタを使用して選択します。 – aiiwa