PHP的UTF-8解码

7

我正在从Tumblr API获取帖子,但在“帖子”的“正文”返回值中遇到了编码问题。所有的撇号都被替换成了像“aETM”这样的东西。

我正在尝试使用:

utf8_decode($string)

但这只是将“aETM”替换为“?”的出现次数而已。
有什么建议吗?
2个回答

20
尝试
$string = mb_convert_encoding($string,'HTML-ENTITIES','utf-8');

好的,谢谢,那个方法可行。你能解释一下为什么 utf8_decode 不起作用吗? - Jon Rubins
1
utf8_decode将UTF-8字符串转换为ISO-8859-1(又称Latin1)字符串。 - Tim Gautier
@jrubins:这是因为使用该字节序列表示的字符在ISO-8859-1中不存在,而utf8_decode解码到该编码 - 因此它生成一个?作为替换字符。如果您一直使用UTF-8(您真的应该这样做),一开始就不会有任何问题。 - Michael Madsen

1

使用此链接将字符串转换。

iconv("UTF-8", "CP1252", $data)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接