【发布时间】:2012-08-05 11:34:12
【问题描述】:
我有一个 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 格式。
【问题讨论】:
标签: mysql database utf-8 latin1