在MySQL中将一些行从ISO-8859-1转换为UTF-8

时间:2016-12-08 13:51:11

标签: mysql utf-8

我有一个MySQL表,其中某些行是正确的UTF8,有些是作为ISO插入的。我需要将它们转换为UTF8。

例如

Hahnemühle
Hahnemühle

如何仅将ISO-8859-1中的行转换为UTF8?

这是我尝试过的。我正在检查iso-to-utf是否给出了有效的结果:

# create table
create table tmp1 (
    txt varchar(100)
);

# insert data
insert into tmp1 values ('Hahnemühle');
insert into tmp1 values ('Hahnemühle');

# convert
update tmp1
set txt=convert(cast(convert(txt using latin1) as binary) using utf8)
where convert(cast(convert(txt using latin1) as binary) using utf8) is not null;

它给了我: [HY000] [1300]无效的utf8字符串:' ...'

这很奇怪,因为结果:

select txt
from tmp1
where convert(cast(convert(txt using latin1) as binary) using utf8) is not null

是:

Hahnemühle

0 个答案:

没有答案