我尝试使用 Perl 和 Net::Twitter 向 twitter 1.1 搜索 API 提交搜索。当搜索字符串没有扩展字符时一切正常,但如果我使用非拉丁字符,我会得到 401。
对值调用 url_encode_utf8 会导致双重编码。在它上面调用 encode('utf8','...') 会给我一个 401。
任何人都可以帮忙吗?
这是我的测试用例:
#!/usr/bin/perl
use strict;
use warnings;
use Net::Twitter;
use Encode;
my $nt = Net::Twitter->new(
traits => [qw/API::RESTv1_1/],
consumer_key => '...',
consumer_secret => '...',
access_token => '...',
access_token_secret => '...',
);
die "unauthorized" unless $nt->authorized;
my $q = 'ﺝﺎﻤﻋﺓ ﺎﻠﻤﻠﻛ ﺲﻋﻭﺩ';
eval{
my $r = $nt->search({q => $q});
use Data::Dumper;
print Dumper $r;
};
if ($@)
{
print STDERR $@, "\n";
}