android user-agent iso-8859-1,perl - 如何使用LWP :: UserAgent强制对表单数据进行ISO-8859-1编码? - 堆栈内存溢出...

呵呵。 :-)这与最近十几个Perl版本中对Unicode的支持不断增长以及URI模块使用的regex功能\\C (更确切地说,由URI::Escape 。

为什么使用URI模块? 因为它用于通过HTTP::Request::Common进行表单和URL编码。

同时,这是我写的一个脚本,以提醒自己这个问题有多么棘手,特别是因为URI模块是如此频繁使用:

use 5.010;

use utf8;

# Perl and URI.pm might behave differently when you encode your script in

# Latin1 and drop the utf8 pragma.

use Encode;

use URI;

use Test::More;

use constant C3A8 => 'text=%C3%A8';

use constant E8 => 'text=%E8';

diag "Perl $^V";

diag "URI.pm $URI::VERSION";

my $chars = 'è';

my $octets = encode 'iso-8859-1', $chars;

my $uri = URI->new('http:');

$uri->query_form( text => $chars );

is $uri->query, C3A8, C3A8;

my @exp;

given ( "$^V $URI::VERSION" ) {

when ( 'v5.12.3 1.56' ) { @exp = ( E8, C3A8 ) }

when ( 'v5.10.1 1.54' ) { @exp = ( C3A8, C3A8 ) }

when ( 'v5.10.1 1.58' ) { @exp = ( C3A8, C3A8 ) }

default { die 'not tested :-)' }

}

$uri->query_form( text => $octets );

is $uri->query, $exp[0], $exp[0];

utf8::upgrade $octets;

$uri->query_form( text => $octets );

is $uri->query, $exp[1], $exp[1];

done_testing;

所以我得到的(在Windows和Cygwin上)是:

C:\Windows\system32 :: perl \Opt\Cygwin\tmp\uri.pl

# Perl v5.12.3

# URI.pm 1.56

ok 1 - text=%C3%A8

ok 2 - text=%E8

ok 3 - text=%C3%A8

1..3

和:

MiLu@Dago: ~/comp > perl /tmp/uri.pl

# Perl v5.10.1

# URI.pm 1.54

ok 1 - text=%C3%A8

ok 2 - text=%C3%A8

ok 3 - text=%C3%A8

1..3

UPDATE

您可以手工制作请求正文:

use utf8;

use Encode;

use LWP::UserAgent;

my $chars = 'ölè';

my $octets = encode( 'iso-8859-1', $chars );

my $body = 'text=' .

join '',

map { $o = ord $_; $o < 128 ? $_ : sprintf '%%%X', $o }

split //, $octets;

my $uri = 'http://localhost:8080/';

my $req = HTTP::Request->new( POST => $uri, [], $body );

print $req->as_string;

my $ua = LWP::UserAgent->new;

my $rsp = $ua->request( $req );

print $rsp->as_string;

内容概要:《绿色转型美丽乡村——汾渭平原地区低碳乡村案例集》由西安空气侠环保科技有限公司编写,北京市企业家环保基金会支持,聚焦汾渭平原地区乡村低碳发展的典型实践。报告梳理了国内外相关理论研究及政策背景,展示了中央与地方在低碳乡村发展方面的政策措施。通过五个典型案例,包括芮城县庄上村的“光储直柔”模式、铜川耀州区克坊村的“光伏+普惠金融”、浮山县臣南河村的循环经济模式、澄城县权家河村的“风光储一体化”以及麟游县紫石崖村的“光伏+生态养殖”,详细分析了这些案例的技术路线、项目成效、主要政策、典型经验和存在问题。报告总结了清洁能源在乡村低碳发展中的核心地位,强调了因地制宜发展策略的关键作用,并指出了多重效益综合追求的重要性。 适合人群:从事环保、农业、能源领域研究的专业人士,以及关注乡村低碳发展和可持续发展的政策制定者和社会学者。 使用场景及目标:①为全国其他地区开展乡村能源转型实践提供有益的借鉴;②助力推动我国乡村低碳发展,为实现碳达峰、碳中和目标贡献积极力量;③为政策制定者提供决策参考,促进乡村绿色转型和乡村振兴战略的实施。 其他说明:报告由多家单位参编,感谢北京市企业家环保基金会提供资金支持。文中内容及意见仅代表作者的个人观点,与北京市企业家环保基金会的立场或政策无关。报告期望为全国其他地区开展乡村能源转型实践提供有益的借鉴,助力推动我国乡村低碳发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值