我正在使用TwitterAPIExchange从 Twitter 搜索 API 检索推文的包装器。只要我不使用晦涩的字符 å、ä、ö,它就可以正常工作。
我的代码很简单:
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$getfield = '?q='.$twittername.'&lang=sv';
$requestMethod = 'GET';
$response = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
当我回显 $twittername
时,我可以看到该名称是正确的瑞典语,但在 Twitter 的响应中,Twitter 收到的查询正在使用替换字符。例如:对名称 Göran
的请求将变为 G%EF%BF%BDran
。
我已将数据库设置为通用 utf-8。
我还尝试对字符 å、ä、ö 进行 urlencode(使用 %E5
、%E4
、%F6
),但是Twitter 收到的查询保持不变,即 G%EF%BF%BDran
。
最佳答案
您是否在 $twittername
上尝试过 rawurlencode()
?
如果“twitter 收到的查询保持不变”为真,那么 API 肯定有责任将其转换为 UTF-8?当您使用 RESTful API 时,应该需要 url 编码。
如果您遇到G%EF%BF%BDran
(而不是twitter)问题,您可以随时urldecode()
解决。
关于php - Twitter 搜索 api 请求因国际字符而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21018237/