【发布时间】:2011-08-24 22:45:54
【问题描述】:
我有以下代码
use utf8;
open($file, '>:encoding(UTF-8)', "さっちゃん.txt") or die $!;
print $file "さっちゃん";
但我得到的文件名是ã•ã£ã¡ã‚ƒã‚“.txt”
我想知道是否有一种方法可以使这项工作如我所料(意味着我有一个 unicode 文件名)而不求助于 Win32::API、Win32API::* 或移动到另一个平台并使用 Samba共享以修改文件。
目的是确保我们没有任何需要加载的 Win32 特定模块(即使是有条件的)。
【问题讨论】:
-
它在我这边工作得很好(windows XP,cygwin perl 5.10)。确定你有 perl 问题而不是其他一些问题吗?你真的用 UTF-8 编码保存源码吗?
-
@n0rd 我使用的是 ActiveState Perl 而不是 Cygwin
-
是的,尝试在 ActivePerl 上运行它,它创建的文件名称为乱码。