我正在尝试将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
请注意,虽然删除了特殊字符,但其他字符仍然存在,并且某些字词之间缺少空格。
有谁知道如何克服这个问题?
答案 0 :(得分:4)
最好的办法是为您的网站使用UTF-8。这几乎是当今网络上的事实上的标准,并且几乎可以编码计算机上使用的任何和所有字符。
如果你很难切换,你可以通过将它们编码为HTML实体来表示ISO-8859中无法编码的字符:
echo htmlentities($new_text, ENT_NOQUOTES, 'UTF-8');
这应该保留所有字符,即使在ISO-8859上下文中也是如此。