将mysql中的数据从1252转换并显示为UTF-8

时间:2015-03-01 07:41:59

标签: php mysql utf-8

我有一个必须使用的旧数据库。问题是旧数据(主要是文本)存储在1252(latin1_general_ci)中,并在页面上显示为??????。然后我将整个数据库和表格转换为UTF-8整理,如下所示:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

但问题仍然存在。我知道上面的查询只是更改字段排序规则。我的问题是有没有办法在网页上正确显示这些?????记录?

1 个答案:

答案 0 :(得分:1)

1)创建转储

mysqldump --default-character-set=latin1 --skip-set-charset mydatabase mytable > ./mytable.sql

2)在mytable.sql中替换utf8中的latin1

CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL,
  `name` char(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

3)导入数据库

mysql --user=login -p --database=mydatabase < ./mytable.sql

mysqldump — A Database Backup Program