如何转换&x201Cé”;至“é”;在PHP中?

如何转换&x201Cé”;至“é”;在PHP中?,php,encoding,Php,Encoding,我试图将一个字符串从这个“é转换为这个“é”。这是一个拉丁文字符,但我做得不对。到目前为止,我已经尝试了两个函数,但没有一个给我正确的输出 $translation = 'Copà © rnico was Italian'; $translation = mb_convert_encoding($translation, 'utf-8', 'iso-8859-1'); //opt 1 $translation = iconv('utf-8', 'latin1', $translation);

我试图将一个字符串从这个“é转换为这个“é”。这是一个拉丁文字符,但我做得不对。到目前为止,我已经尝试了两个函数,但没有一个给我正确的输出

$translation = 'Copà © rnico was Italian';
$translation = mb_convert_encoding($translation, 'utf-8', 'iso-8859-1'); //opt 1
$translation = iconv('utf-8', 'latin1', $translation); //opt 2
我从Api获取这些数据,所以我不知道数据库中发生了什么。 这是西班牙语的字符串:Copérnico es italiano。 这是API的数据:Copérnico是意大利人 这是$translation=bin2hex($translation)的结果; 436F70C38320C2A920726E6963F206973204974616C69616E


正确的方法是什么?您好。

我以前也遇到过同样的问题,但我选择了这个选项 $translation = iconv('utf-8', 'latin1', $translation); //opt 2 $translation=iconv('utf-8','latin1',$translation)//选择2 工作非常好。 你的问题是,“Copérnico是意大利人”和“Copérnico是意大利人”不一样


因此,当您尝试转换函数iconv时,可能会看到2个错误的UTF-8符号,因为反空格(2个无效UTF-8符号和2个空格)与“Ô(1个有效UTF-8符号)不同。

可能已经是UTF-8带有错误符号?如果看到,可能会重复,这意味着您没有使用正确的字符集解释某些字节。问题在于,要么你只是错误地处理了正确的字节,要么你把数据弄乱了,数据的字面意思是字母“é”。用给定的信息不可能知道它是哪一个。从一个
echo bin2hex($translation)
开始,查看字符串包含的字节数,根据该字节数找出它是什么字符集,然后找出你想要的字符集。把这些信息放到你的问题中。我打了一拳,然后重新打开,但我认为它不会一直被重新打开。在你试图在这里解决它之前,你需要找出是什么写错了,为什么写错了。只有知道确切的不正确变换,才能给出反转。