PHP中的Twitter API字符编码问题

时间:2013-05-08 09:18:55

标签: php json api twitter

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

  

SWLaw:Farm&国家出局了! http://paper.li/SWLAWCOUK/1346753760 ...▸今日热门新闻@CountrySportsSW @jonesFW @NFUBFGmag

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

  

RT @SWLawCountry:SWLaw:Farm&国家出局了! 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:Farm&国家出局了! http://t.co/AU7WCxUxf5今天的头条新闻   VI @ CountrySportsSWS @ jonesFWF @ NFUBFGmagag

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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