gpt4 book ai didi

Perl 错误的 UTF-8 输出

转载 作者:行者123 更新时间:2023-12-02 01:48:32 26 4
gpt4 key购买 nike

我有以下程序:

#! /usr/bin/perl
use strict;
use warnings;
use utf8;

print "\x{00a0}\n";

当我运行它时,它产生错误的 UTF-8 编码:

$ ./nbsp.pl | od -tx1
0000000 a0 0a
0000002

我的期望是这样的:

$ printf '\u00a0\n' | od -tx1
0000000 c2 a0 0a
0000003

为什么是00a0编码为 a0 而不是应有的 c2a0

当我尝试解析 JSON 数据时,也会发生同样的情况:

#! /usr/bin/perl
use strict;
use warnings;
use JSON::Parse qw(parse_json);

my $json = parse_json ('{"nbsp":"\u00A0"}');
print $json->{nbsp}, "\n";

最佳答案

它不需要 utf8 编译指示,而是需要一个对输出进行编码的语句。最佳使用open pragma

use strict;
use warnings;

use open ":std", ":encoding(UTF-8)";

print "\x{00a0}\n";

关于Perl 错误的 UTF-8 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70611754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com