私がそれを挿入しているmysqlテーブル(fooと呼びましょう)はlatin1文字でエンコードされています(コマンドで表示されますHow do I see what character set a MySQL database / table / column is?)および私のデータベースは後に次の結果を持っています変数を表示:
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1
foo には、varchar(255) col に foo® という文字列を格納したエントリがあり、それを 16 進数で表示すると、utf8 (666F6FC2AE) でエンコードされていることがわかります。mysql プロンプトから選択クエリを実行すると、foo® と表示されます。ただし、latin1 666F6FAE でエンコードされた同じ文字列を挿入すると、同じ mysql コマンド プロンプトで選択を実行すると、foo が表示されます。latin1 テーブルに utf8 でエンコードされたデータがあるのはなぜですか? また、latin1 でエンコードされたデータをテーブルに挿入できないのはなぜですか?