繁体   English   中英

PHP中的Twitter API字符编码问题

[英]Twitter API character encoding issue in PHP

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

SWLaw:农场和乡村出局了! 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

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

有谁知道我怎么能克服这个问题?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM