我有一个包含unicode char的大列表,我想用一些带有以下代码的ASCII字符交换(这段代码更多的东西):
while ($Zeile=<STDIN>)
{
@Zeile=split('\t',$Zeile);
$i=0;
foreach(@Zeile)
{
if ($i>1)
{
$entry=$_;
$entry=~s/\(Details\)/ /;
$entry=~s/\x{00BC}/.25/;
$entry=~s/\x{00BD}/.5/;
$entry=~s/\x{00BE}/.75/;
print($entry);
}
$i++;
}
}
但是在结果中会插入一个char,它不是unicode char。例如,“7½”更改为“7 .5”(复制和粘贴)
答案 0 :(得分:3)
可能您从未指定STDIN
是utf-8流。像
binmode STDIN, ":utf8";
可以解决这个问题。