那么LWP::UserAgent可以自动检测字符集吗?

发布于 2024-11-17 16:25:26 字数 359 浏览 4 评论 0原文

  our $ua = LWP::UserAgent->new;
  my $response = $ua->get($url);
  if($response->is_success) {
    my $perl_hash_or_arrayref = decode_json(encode("UTF-8", $response->decoded_content));

上面的代码将响应转换为UTF-8编码,而不需要告诉它响应正在使用哪种编码。

我认为这在某些情况下可能会失败。

如何明确告诉 LWP::UserAgent 响应编码?

  our $ua = LWP::UserAgent->new;
  my $response = $ua->get($url);
  if($response->is_success) {
    my $perl_hash_or_arrayref = decode_json(encode("UTF-8", $response->decoded_content));

The above code converts the response to UTF-8 encoding,without the need to tell it which encoding the response is using.

I asume this may fail under certain cases.

How can I explicitly tell LWP::UserAgent the response encoding?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖不如嘢 2024-11-24 16:25:26

请参阅 HTTP::Message< 中的 decoded_content 文档/代码>

$mess->decoded_content( %options )

 返回未完成任何内容编码的内容
 文本内容 编码为 Perl 的 Unicode 字符串的原始内容。
 如果消息的内容编码或字符集未知,则此
 方法将因返回 undef 而失败。

    可以指定以下选项。

    字符集

        这会覆盖文本内容的字符集参数。价值
 没有一个可以用来抑制字符集的解码。

See the docs for decoded_content in HTTP::Message:

$mess->decoded_content( %options )

    Returns the content with any Content-Encoding undone and for
 textual content the raw content encoded to Perl's Unicode strings.
 If the Content-Encoding or charset of the message is unknown this
 method will fail by returning undef.

    The following options can be specified.

    charset

        This override the charset parameter for text content. The value
 none can used to suppress decoding of the charset.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文