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";
}