我有一个包含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.5”更改为“7�5”(复制和粘贴)
发布于 2013-09-03 06:38:02
可能您从未指定STDIN是utf-8流。有点像
binmode STDIN, ":utf8";可能会解决这个问题。
https://stackoverflow.com/questions/18584890
复制相似问题