我正在尝试将Twitter V1.1与PHP网站集成起来。在Twitter上,我的推文显示如下:
SWLaw :农场和乡村出局了!http://paper.li/SWLAWCOUK/1346753760…▸今日头条新闻通过@CountrySportsSW @jonesFW @NFUBFGmag
然而,在我的网站上,这条推文显示为:
RT @SWLawCountry: SWLaw :农场和乡村退出!http://t.co//AU7WCxUxf 5-今天的顶级故事vi@ Country stories @jonesFWF@NFUBFGmagag
注意其他字符和特殊字符。
这似乎是一个字符编码问题,因为Twitter (我相信)返回编码为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@ Country stories @jonesFWF@NFUBFGmagag
请注意,虽然特殊字符已被移除,但附加字符仍然存在,某些单词之间缺少空格。
有人知道我怎样才能克服这个问题吗?
发布于 2013-05-08 09:28:33
最好的做法是使用UTF-8作为您的网站。这几乎是当今网络上事实上的标准,几乎可以对计算机上迄今使用的任何字符进行编码。
如果很难切换,则可以通过将字符编码为HTML实体来表示ISO-8859中不可编码的字符:
echo htmlentities($new_text, ENT_NOQUOTES, 'UTF-8');这应该保留所有字符,即使在ISO-8859上下文中也是如此。
https://stackoverflow.com/questions/16436907
复制相似问题