use Encode qw(encode decode);
$data ='t+AOQ-m+AOQ- on mit+AOQ- on';
$data = encode("iso-latin-1", decode("utf7", $data));
printf "%v02X\n", $data;
給
74.E4.6D.E4.20.6F.6E.20.6D.69.74.E4.20.6F.6E
這是ISO-LATIN-1編碼
tämä on mitä on
如果您看到「tämäonmitäon」以外的內容,那是因爲您用來查看它的工具將它視爲iso-latin-1以外的內容。
你想要iso-latin-1,還是希望它在你的工具中正確顯示?如果是後者,請使用正確的編碼,而不是iso-latin-1。
如果命令行工具chcp
返回437(例如),則需要cp437。
use Encode qw(encode decode);
my $raw ='t+AOQ-m+AOQ- on mit+AOQ- on';
my $data = decode("utf7", $raw);
print encode("cp437", "$data\n");
或更好,但
use open ':std', ':encoding(cp437)';
use Encode qw(decode);
my $raw ='t+AOQ-m+AOQ- on mit+AOQ- on';
my $data = decode("utf7", $raw);
print "$data\n";
也許ü意味着'編碼( 'ISO-8859-1',解碼( 'UTF7',$數據));'? – Suic
是的,這是我的意思,但這是我的代碼不起作用 – user2914962
此代碼的結果是tΣmΣonmitΣon,但是正確的結果應該是關於012的Tämä – user2914962