【发布时间】:2014-03-30 22:40:31
【问题描述】:
我正在使用 Google PHP API 客户端从 Youtube 检索视频信息。在某些视频的标题中有特殊字符。返回的不是“één”,而是“eÌeÌn”。我尝试了 utf8_decode,但没有运气。
有人知道如何解决这个问题吗?
【问题讨论】:
我正在使用 Google PHP API 客户端从 Youtube 检索视频信息。在某些视频的标题中有特殊字符。返回的不是“één”,而是“eÌeÌn”。我尝试了 utf8_decode,但没有运气。
有人知道如何解决这个问题吗?
【问题讨论】:
使用mb_detect_encoding() (http://www.php.net/manual/fr/function.mb-detect-encoding.php) 了解任何文本使用什么编码(并相应地对其进行解码/编码)。
【讨论】:
所以,这里有一些有趣的东西:
$ perl -e 'binmode(STDOUT, "utf8");' \
-e 'print "e\N{COMBINING ACUTE ACCENT}\n";' \
| iconv -c -f CP1252
eÌ
您看到的输出可以用 UTF-8 中的字符串(分解了字素)来解释,该字符串 在某些时候被解释为代码页 1252 中的字符串(请注意在 Web 上,如果您未指定某种编码,则假定它在 CP1252 中)。它还必须丢弃无效的代码点,您不应该这样做,但无论如何。
检查所有触及该字符串的内容。任何不支持 Unicode 的内容都需要替换为可以识别的内容。
【讨论】: