問題タブ [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.

0 投票する
1 に答える
3365 参照

java - UTF-8mb4 を UTF-8 に変換するにはどうすればよいですか?

docx4j を使用して .docx ファイルを html に変換し、そのデータを MySQL データベースに保存しています。残念ながら、問題が発生しました。utf8mb4 でエンコードされた文字を含むドキュメントを変換し、そのデータを MySQL サーバーに送信しようとすると、utf8mb4 文字を解析する方法がわからないという一般的な JDBC 例外が発生します。

ERROR pool-3-thread-20 org.hibernate.util.JDBCExceptionReporter - 行 1 の列「u_content」の「\xEF\xBF\xBD???...」の文字列値が正しくありません

MySQL サーバーを 5.5 に移行する「許可」がないため、その修正は公開されていません。

Java では、どうにかして utf-8mb4 を utf-8 に戻し、すべての utf-8mb4 文字を � または何かに変換することはできますか?

0 投票する
1 に答える
19090 参照

character-encoding - MySQL - 更新時に無効な utf8mb4 文字列

私の質問はここにあるものとほぼ同じです

MySQL - 1300 - 更新時の無効な utf8 文字列

解決策は提示されず、その人の助け (一時テーブルの作成) は役に立たないようでした。私が使用している選択ステートメントは次のとおりです。

次の更新コマンドを実行しようとすると、次のようになります。

次の方法で行を設定しようとしましたが、すべて同じエラーが発生しました。

http://jonisalonen.com/2012/fixing-doubly-utf-8-encoded-text-in-mysql/も調べて、二重エンコーディングの問題であるかどうかを確認しましたが、これらのどれも機能せず、取得し続けました同じ文字列エラーです。

さらに、変換手順を支援するためにhttps://mathiasbynens.be/notes/mysql-utf8mb4を調べましたが、utf8mb4 と utf8 がまったく同じ問題を引き起こしています。(最初は utf8 の問題だと思ったので、utf8mb4 に切り替えましたが、それでも同じ問題が発生し続けたとき、より深い問題があることがわかりました)

ご覧のとおり、何か奇妙なことが起こっています。show create address テーブルを見ると、文字セットが適切に設定されていることを確認できます。

さらに、私のインスタンスでは文字変数が正しいことがわかります。

私はどうやってここに来たのか

そのため、問題の原因が背景にある場合に備えて、問題に関する背景情報を提供することは有益な場合があります。

私は元々、すべてをエンコードする latin1 に設定されていたデータベースを持っていました。次に、次のコードを実行しました。

blob に切り替えてから varchar に戻す理由は、通常の推奨手順です。(www.percona.com/blog/2013/10/16/utf8-data-on-latin1-tables-converting-to-utf8-without-downtime-or-double-encoding/)

それが役立つかどうか、また提供できる情報が他にあるかどうか教えてください。私はMySQL 5.6を使用しているので、理論的にはより適切に処理できるはずですが、誰が知っていますか. 4 行しかないので、それぞれを手動で更新できますが、理論的には根本的な問題が大きく、実際にはさらに多くの列を通過する必要があるため、機能的な方法があることを確認することをお勧めします。かなりの数の行で何かを取得した場合に備えて、これらのケースを処理します。

0 投票する
4 に答える
42511 参照

mysql - MySQL で utf8mb4 を使用する

utf8mb4MySQL (5.6.11) で4 バイトを使用するために、my.iniファイル (my.cnfが見つかりません) に次の変数を設定しました。このファイルは、Windows XP ではApplication Data( )という名前の隠しフォルダーにあります。C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6インストールディレクトリの下にはありません。

そして、次のコマンドを発行します。

まだ次のリストが表示されます。

ここに画像の説明を入力

写真自体から、いくつかの変数がまだ 3-byte を使用していることは明らかですutf8


これを行う前に、データベース自体に対応する変更を加えるために、次のコマンドが既に発行されていました。

また、上記のデータベース内のすべてのテーブルに対して、次のコマンドも発行されていました。


それにもかかわらず、一部の変数がまだ上記の文字セットと照合に設定されていない理由は何ですか? 何が欠けている?

上記で指定されたすべてのタスクが実行された後、システム (オペレーティング システム) 自体が再起動されました。

0 投票する
3 に答える
20837 参照

mysql - MySQL UTF8 から UTF8MB4 への移行の問題と質問

UTF8 MySQL 5.5.30 データベースを UTF8MB4 に変換しようとしています。この記事https://mathiasbynens.be/notes/mysql-utf8mb4を見ましたが、いくつか質問があります。

私はこれらをやった

最後の1つは62のテーブルで手動で行われ、そのうちの1つがこの警告を出しました

13:08:30 ALTER TABLE bradspelold.games CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 101289 行が影響を受け、2 つの警告: 1071 指定されたキーが長すぎました。キーの最大長は 767 バイトです。 1071 指定されたキーが長すぎます。キーの最大長は 767 バイト レコード: 101289 重複: 0 警告: 2 3.016 秒

  1. これは問題ですか?修正するにはどうすればよいですか?

次のステップは

  1. コマンドについてよくわかりません。なぜ column_name が 2 つあるのですか?
  2. VARCHAR(191) 列でのみこれを行う必要がありますか? 私はそれらのいずれかを持っているとは思いませんか?
  3. このような id の詳細について、その理由と方法を説明している記事を他に知っていますか?

編集 :

テーブルショーゲーム

編集2:

0 投票する
1 に答える
562 参照

mysql - スマイリーはmysql utf-8 mb4データベースでどのようにエンコードされていますか?

ユーザーが携帯電話/Macからスマイリーを入力できるように、mysqlデータベースをutf-8 mb4に変更しました。それは機能します (ユーザーはスマイリーを入力でき、それらのスマイリーはサポートされているデバイスの Web アプリに表示されます) が、(ターミナルまたは mysql ワークベンチを介して) テーブルの内容を見るたびに、各スマイリーが 1 つの疑問符として表示されます。それらのスマイリーはどのように正確に保存されますか? 彼らは utf-8 mb4 コードを持っていると思いますが、それらを見る方法はありますか?

ありがとう!

0 投票する
2 に答える
3232 参照

codeigniter - CodeIgniter を使用して MySQL に顔文字を挿入する方法

Unicode 文字を MySQL に挿入し、CodeIgniter を使用してそれらを取得する方法は? やるべき設定はありますか?

これは、印刷するときのクエリです。

しかし、それはとして保存してい????ます。

これが私がやったことです。CodeIgniter データベース.php