原始文件中的字符表示如何:
" – "
在np ++的输出控制台中使用perl脚本显示为这个?
" ÔÇô "
原始编码是UTF-8(根据np ++)并打开并读取我使用此行的文件:
open(DATA, '<:encoding(utf-8)', "C:\\test.csv") or die "Can't open data";
@lines = <DATA>;
如果我用以下内容迭代:
foreach (@lines){
print $_;
}
如上所述,角色代表。我在notepad ++控制台中显示输出而不是新文件。
答案 0 :(得分:1)
在print
声明之前,请尝试添加此内容:
binmode(STDOUT, ":utf8");
foreach (@lines){
print $_;
}
在Windows系统上,
use Encode;
binmode(STDOUT, 'encoding(cp850)');
系统中的代码页(850)编号可能不同,请在DOS控制台中编写此订单以获取您的编号:
C:\>chcp
也就是说,即使你做的一切都可以正常工作,因为有问题的人物U + 2013不是两种最常见的控制台编码cp850和cp437的一部分。它无法使用这些编码显示在控制台中。
如果是这种情况,最好的办法是在提示符处输入chcp 65001
,将控制台的编码切换为UTF-8。您需要编辑控制台的属性以将字体切换为适当的字体(例如Lucidia控制台)。完成后,您可以使用:encoding(UTF-8)
。