3

La Cañada、Peñasco などのアクセント記号を含む都市名がデータベースに保存されないという問題を発見しました。SO の別の質問への回答に目を通してみると、PHP で MySQL に使用するのに最適な照合順序は何ですか? 、データベースとvarcharの照合タイプの両方を変更しようとしましたが、まだ文字を拒否していましたlatin1_swedish_ci。私も同様の結果でutf8_general_ci試しました。utf8_unicode_ci

クライアント側でアクセント記号を取り除くと保存が機能することを確認しましたが、理想的にはそこに残しておきたいと思います。

ñ をサポートするためにどの照合タイプを使用しますか?

追加情報: Android アプリをクライアントとして MySQL、phpMyAdmin、および CakePHP を使用する


これまでの提案に感謝します。これは今、CakePHP の質問になっていると思います... デフォルトでは utf8 が有効になっていないことに気付いたので、app/config/database.php ファイルで有効にしました。ファイルをサーバーに FTP で戻し、再試行しましたが、うまくいきませんでした。これらのデータベース構成の変更を開始するためにアプリケーションを再デプロイする必要がありますか? または、アプリケーションの別の領域を確認する必要がありますか? 初めてのCakePHPユーザーはこちら。

4

1 に答える 1

3

照合とは、比較を実行する際に必要な手順である、文字が並べ替えられる順序にすぎません。データの保存方法とは関係ありません (特定の照合順序がエンコーディングに固有のものである場合を除きます)。

文字エンコードとは、文字を格納用のバイナリ表現にマッピングすることで、サポートされる文字セットを決定します。

ただし、データベース/テーブル/列が特定の文字エンコーディングを使用しているからといって、話が終わるわけではありません。アプリケーション内および他のコンポーネント (MySQL など) とのインターフェースで使用されるエンコーディングも考慮する必要があります。

PHP を対象としていますが、UTF-8 は、考慮する必要のあるすべてのことをほぼ網羅しています。

于 2012-11-10T10:43:35.470 に答える