【问题标题】:Twitter API character encoding issue in PHPPHP 中的 Twitter API 字符编码问题
【发布时间】:2013-05-08 17:28:33
【问题描述】:

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

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

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

RT @SWLawCountry:SWLaw : Farm & Country 出局了! http://t.co/AU7WCxUxf5â–¸今日头条新闻 vi@CountrySportsSWS@jonesFWF@NFUBFGmagag

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

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

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

这会产生以下输出:

RT @SWLawCountry:SWLaw : Farm & Country 出局了! http://t.co/AU7WCxUxf5今日头条新闻 vi@CountrySportsSWS@jonesFWF@NFUBFGmagag

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

有谁知道我该如何解决这个问题?

【问题讨论】:

    标签: php json api twitter


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-12-23
      • 2010-10-23
      • 2019-11-17
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多