PHP字符编码问题Windows-1252到UTF-8



我有一个字符串,有Windows-1252的字符集,它是从使用php的imap函数的电子邮件正文中提取的:

$string = 'Great job—and a great decision';

然后尝试将其转换为utf-8以插入mysql数据库:

$utf8_encoded = iconv('Windows-1252', "UTF-8//TRANSLIT//IGNORE", $string);

输出如下所示:

echo $utf8_encoded;
Great job—and a great decision

如果将其转换为utf-8而不使用连字符会导致问题,那就太好了。我不确定我做错了什么,任何帮助都会非常感激,谢谢!

我不能总是假设字符集是Windows-1252,我需要一个解决方案,无论电子邮件的字符集是什么。

看起来我在代码中提取电子邮件时对字符串进行了双重编码。问题解决了:)