問題タブ [utf8mb4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Mysql UNIQUE KEY 制約 - a と å は同じ文字として扱われます
列に一意のキーがあります。挿入するaとåエラーがスローされます:
PHP 致命的なエラー: メッセージ 'SQLSTATE[23000]: 整合性制約違反: 1062 重複したエントリ 'å' のキー 'constraint-1'' を含む例外 'PDOException' がキャッチされていません..
....しかしa、 とåは異なる UTF 文字です。
テーブルには照合がDEFAULT CHARSET=utf8mb4 あります。utf8mb4_unicode_ci
mysql - 移行時に utf8mb4 の mysql 文字サポートを取得するにはどうすればよいですか?
Wordpress Web サイトのローカル ビルドをステージング環境に移行しようとしています。私はそれを行うために「wp migrate db」を使用しています。これには、phpmyadmin を介したデータベースのアップロードが含まれます。そうすると、次のようなエラーが表示されます。
1115 - 不明な文字セット: 'utf8mb4'
以下のスレッドを確認しましたが、その男は文字セットを utf8 に変更したようです。utf8mb4 をサポートするように mysql をアップグレードする方法を知りたいですか? それともそれが最善の解決策ですか?最終的には、ローカル サイトをサブドメインのステージング環境に移行したいだけです。複製プラグインを使用してこれを実行しようとしましたが、「文字セット utf8mb4」エラーも発生します。というわけで、これが犯人のようです。
以下のスレッドについて調べてみました。男は文字セットを utf8mb4 から utf8 に変更しました。これもやってみました。header.php を調べたところ、すでに utf8 文字セットのみを使用しています。しかし、それでも同じエラーが発生します。理由がわからない。
エラー 1115 (42000): 不明な文字セット: 'utf8mb4'
これは、mysql での utf8mb4 サポートに関係する唯一の問題ですか? または、この問題に遭遇せずにサイトを移行する方法はありますか?
mysql - mysql utf8mb4_unicode_ci が一意のキーの衝突を引き起こす
このようなテーブルがあります
そして、私は2行を挿入します
2 番目の K は Unicode 文字です。
一意のキーの競合が発生するのはなぜですか? utf8mb4で違うキャラじゃないの?
COLLATE utf8mb4_unicode_ci を削除すると、問題はなくなりました。
database - フロント エンドに表示される Wordpress コンテンツが、管理者で編集するコンテンツではない
これは私が最近直面した問題に対する答えです。
バックグラウンド
最近、Wordpress サイトをローカル マシンから siteground.com のサーバーに移行しました。プラグイン デュプリケーターを使用して移行を行いました。移行を試みるたびに、Web サイトはフロント エンドに適切に表示されます (特定の文字をひし形で置き換えた多くの疑問符を除いて)。バックエンドでは、すべてのページを表示し、クリックして編集することができました。特定のページの管理者編集画面では、コンテンツが表示されません! リビジョンをクリックしてリビジョン履歴を見ることはできましたが、実際のコンテンツ ボックスには何も表示されませんでした。更新を押すと、そのページの内容がクリアされます。
考えられる原因
データベース エラー。プラグインの競合。
私にとっての原因
私のwp-configでは、データベーステーブルの作成に使用するデータベース文字セットがに設定されていました
define('DB_CHARSET', 'utf8mb4');
どうやら、Wordpress はテーブルを utf8mb4 にアップグレードする過程にあるようです。理由については、 https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/を参照してください。
問題は、サイトグラウンドのサーバーのテーブルが utf8 に設定されていることです。そして、私のローカル環境には、utf8mb4 へのアップグレードを伴う新しいワードプレスのインストールがありました。
修正
utf8mb4 から utf8 への簡単な変更でそれができました。
mysql - フランス語の文字に関するmysql utf8の問題
単純な 'é' を mysql (v 5.6) ターミナル Windows サーバー 2008 のテーブルに挿入しようとすると、列 'colum_name' の文字列値が正しくありません: '\x82' が表示されます
私は今、スタックオーバーフローを1日探しています。私は夢中になっていると思います。私の照合はすべてutf8mb4です:
my.iniに追加したものは次のとおりです
ハマった
php - 繁栄で絵文字をサポートするには?
ウェブサイトに flourishlib を使用しています。私のクライアントは、携帯電話で絵文字を使用できるようにすることを要求しました。理論的には、MySQL データベースの文字エンコーディングを utf8 から utf8mb4 に変更する必要があります。
ここまではとても良いですが、次のように切り替えると、次のようになります。
この場合、各文字は 3 バイトではなく 4 バイトを使用します。これにより、データベースのサイズが 33% 増加します。これにより、パフォーマンスが低下し、より多くのストレージ スペースが使用されます。そのため、特定のテーブルの特定の列のみを utf8mb4 のエンコーディングに切り替えることにしました。
すべてが正しいことを確認するために、いくつかのことを確認しました。その中で、flourishlib を調べたところ、疑わしい部分がいくつか見つかりました。
utf8mb4 をサポートしていないように見える fUTF8 クラスがあります。
fDatabase で、いくつかの調査結果を引用しています。
/li>fSQLSchemaTranslation でこれを見ることができます:
/li>
私は、いくつかのテーブルのいくつかの列に utf8mb4 の文字エンコーディングを持たせるという私たちの探求を、flolishlib がサポートしないのではないかと疑っています。これをサポートするために何かをアップグレードできないかと思います。最悪のシナリオとして、utf8 のすべてのテキストを utf8mb4 にオーバーライドできます。しかし、それは非常に醜いハックであり、より良い解決策があるかどうか疑問に思っています. このハックを作成する必要がありますか、それとももっと正統なアプローチがありますか?