php - Twitter 搜索 api 请求因国际字符而失败

标签 php mysql api twitter utf-8

我正在使用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/

相关文章:

javascript - 在执行了一些 javascript 指令后,如何加载 html 文档?

PHP session 超过 2 页

javascript - 在javascript中使用post数组传递数据

php - 保护进出数据库的数据的正确方法是什么?

客户多地址和默认地址的mysql数据库设计

php - 如何从谷歌翻译 api 中删除或隐藏谷歌图标?

php - 在 HTML 中将 MySQL 表的相似行分组在一起

php - Woocommerce 订阅显示下一个付款日期

php - PDO参数绑定(bind)导致异常

api - 如何在 Laravel 中调用端点时模拟注入(inject) Controller 的对象?