我有以下程式:
#! /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";
uj5u.com熱心網友回復:
它不需要utf8編譯指示,而是一個對輸出進行編碼的陳述句。最佳使用開放式編譯指示
use strict;
use warnings;
use open ":std", ":encoding(UTF-8)";
print "\x{00a0}\n";
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/405154.html
標籤:
上一篇:使用grep捕獲組正則運算式
