mysql字符集转换

时间:2014-12-22 14:33:09

标签: mysql character-encoding

我有以下UTF-8表:

CREATE TABLE `table` (
  `id` int(11) NOT NULL DEFAULT '0',
  `description` mediumtext,
  `description_info` mediumtext,
  `rights` mediumtext,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

在UTF-8数据库中:

CREATE DATABASE `DB` /*!40100 DEFAULT CHARACTER SET utf8 */

在此表中有行LATIN1字符,如:è或Ã

我的问题是:如何转换这些字符?

THX!

2 个答案:

答案 0 :(得分:0)

使用CONVERT

SELECT 
    description,
    CONVERT(description USING utg8)
FROM
    `table`

答案 1 :(得分:0)

我在这里找到了一个解决方案:http://www.percona.com/blog/2013/10/16/utf8-data-on-latin1-tables-converting-to-utf8-without-downtime-or-double-encoding/

这些是我应用于在'描述'中转换latin1文本的步骤。列到UTF8:

ALTER TABLE table CONVERT TO CHARACTER SET latin1 -- this is because my table is in UTF8
ALTER TABLE table CHANGE description description BLOB;
ALTER TABLE table CONVERT TO CHARACTER SET utf8, CHANGE description description mediumtext;

我不知道这是否是最有效的方法......但它确实有效!