latin1 形式のデータベースがあり、格納されているすべての utf8 文字が ???? として表示されます。
+------+---------+-------+---------+--------------------+----------+-------------------- -----+---------------------+---------------------+---------+
| id | user_id | fname | lname | designation | location | email | created_at | updated_at | country |
+------+---------+-------+---------+--------------------+----------+------------------------- +---------------------+---------------------+---------+
| 6035 | 6035 | ????? | ??????? | ???????? ????????? | | ccc@rddd.net | 2011-04-11 06:05:54 | 2011-04-10 06:13:04 | xxxxxxxxx |
+------+---------+-------+---------+--------------------+----------+-------------------------+---------------------+---------------------+---------+
このコマンドを使用して、データベースとテーブルの形式を utf8 に変更します。
ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8;
ALTER DATABASE <database_name> CHARACTER SET utf8;
latin1 はすべての文字に 1 バイトを使用しますが、utf8 はすべての文字に 3 バイトを使用することを読みました。私の質問は、(すでに大量のデータを含む) テーブルを latin1 から utf8 に変更すると、古い文字データは 3 バイトまたは 1 バイトを消費することになります。データを変更して変換すると、古いデータに問題が発生しますか? 新しいデータは utf8 になると確信しています。