1

我正在尝试将 Twitter API V1.1 与 PHP 网站集成。在 Twitter 上,我的推文显示为:

SWLaw : Farm & Country 出局了!http://paper.li/SWLAWCOUK/1346753760 ... ▸ 今日头条新闻来自@CountrySportsSW @jonesFW @NFUBFGmag

但是,在我的网站上,推文显示为:

RT @SWLawCountry:SWLaw:农场和乡村已经出局了!http://t.co /AU7WCxUxf5â–¸今日头条新闻 vi@CountrySportsSWS@jonesFWF@NFUBFGmagag

注意附加字符和特殊字符。

这似乎是一个字符编码问题,因为 Twitter API(我相信)返回编码为 UTF-8 的 JSON,而我的网页编码为 iso-8859-1。我尝试使用 PHP 的 iconv 函数来解决这个问题,如下所示:

$new_text = iconv("UTF-8", "ISO-8859-1//IGNORE", $new_text);

这会产生以下输出:

RT @SWLawCountry:SWLaw:农场和乡村已经出局了!http://t.co/AU7WCxUxf5今天头条新闻 vi@CountrySportsSWS@jonesFWF@NFUBFGmagag

请注意,虽然特殊字符已被删除,但其他字符仍然存在,并且某些单词之间缺少空格。

有谁知道我可以如何克服这个问题?

4

1 回答 1

4

最好的办法是为您的网站使用 UTF-8。这几乎是当今网络上事实上的标准,并且几乎可以对迄今为止计算机上使用的任何和所有字符进行编码。

如果您难以切换,您可以通过将它们编码为 HTML 实体来表示 ISO-8859 中不可编码的字符:

echo htmlentities($new_text, ENT_NOQUOTES, 'UTF-8');

这应该保留所有字符,即使在 ISO-8859 上下文中也是如此。

于 2013-05-08T09:28:33.690 回答