【发布时间】:2012-12-14 07:58:29
【问题描述】:
我的问题很简单。我想用我的 Perl 脚本输出 UTF-8。 此代码无效。
use utf8;
open(TROIS,">utf8.out.2.txt");
binmode(TROIS, ":utf8");
print TROIS "Hello\n";
输出文件不是 UTF-8 格式。 (我的文件脚本是用 UTF-8 编码的)
但是,如果我在print 中插入一个重音字符,那么它就可以工作并且我的输出文件是 UTF-8。示例:
print TROIS "é\n";
我在 Windows 下使用 ActivePerl 5.10。可能是什么问题?
【问题讨论】:
-
你写的只是带有
Hello\n的ASCII字符。幸运的是,ASCII 仍然是完全有效的 UTF-8。但是,编辑器的自动检测很可能不会在编码时显示 UTF-8,因为他们没有任何东西可以判断文件内容的编码。我猜你根本不知道文件编码是如何工作的。 -
感谢您的解释。
-
@Moritz:请发表您的解释作为答案。然后 user1903343 应将其标记为已接受,以便此问题不再显示为“未解决”。
-
非常正确。这样做是为了提供更多信息。