我正在尝试使用 LWP::Simple 向 REST 服务发出 GET 请求。这是简单的代码:
use LWP::Simple;
$uri = "http://api.stackoverflow.com/0.8/questions/tagged/php";
$jsonresponse= get $uri;
print $jsonresponse;
在我的本地机器上,运行 Ubuntu 10.4 和 Perl 版本 5.10.1:
farhan@farhan-lnx:~$ perl --version
这是为 x86_64-linux-gnu-thread-multi 构建的 perl, v5.10.1 (*)
我可以得到正确的响应并将其打印在屏幕上。例如:
farhan@farhan-lnx:~$ head -10 output.txt
{
"total": 1000,
"page": 1,
"pagesize": 30,
"questions": [
{
"tags": [
"php",
"arrays ”,
“编码风格”
(......剪断......)
但是在我通过 SSH 连接到的主机上,我会在屏幕上打印出相同代码的垃圾。我假设它与编码有关,但是 REST 服务不会在响应中返回字符集类型,那么如何强制 LWP::Simple 使用正确的编码?有什么想法可能发生在这里吗?
这是我主机上的 Perl 版本:
[dredd]$ perl --version
这是为 x86_64-linux-gnu-thread-multi 构建的 perl,v5.8.8