Perl - 系统中文文件名

时间:2014-03-06 08:27:00

标签: perl system filenames

任何人都可以解释为什么我的文件名显示错误以及如何修复它?我想文件名是游戏美术.txt3

我正在使用Debian 6,Perl v5.10.1     LANG =的en_US.UTF-8     LANGUAGE =     LC_CTYPE = “的en_US.UTF-8”     LC_NUMERIC = “的en_US.UTF-8”     LC_TIME = “的en_US.UTF-8”     LC_COLLATE = “的en_US.UTF-8”     LC_MONETARY = “的en_US.UTF-8”     LC_MESSAGES = “的en_US.UTF-8”     LC_PAPER = “的en_US.UTF-8”     LC_NAME = “的en_US.UTF-8”     LC_ADDRESS = “的en_US.UTF-8”     LC_TELEPHONE = “的en_US.UTF-8”     LC_MEASUREMENT = “的en_US.UTF-8”     LC_IDENTIFICATION = “的en_US.UTF-8”     LC_ALL =

#!/usr/bin/perl
system("echo 游戏美术 > 游戏美术.txt3");
system ("cat 游戏美术.txt3");

输出: cat:游戏美术.txt3:没有这样的文件或目录

我尝试删除txt3文件:rm -r * .txt3 rm:删除常规文件`游\ 346 \ 217美术.txt3'?

Filename在我的控制台中显示为游??美术.txt3。我可以捕捉它,内容显示正确但不是文件名。

非常感谢。

更新1: 我在Debian 7,perl v5.14.2和Ubuntu 12.04 perl v5.14.2上测试了上面的2个代码。他们工作正常。

更新2: 使用Debian 6,perl v5.10.1

#!/usr/bin/perl
system ("touch 游戏美术.txt4");

它可以正确创建游戏美术.txt4文件。我的意思是中文文件名。

我可以用“system(”echo游戏美术>游戏美术.txt3“)做什么;”创建正确的文件名?不是游??美术.txt3

谢谢!

0 个答案:

没有答案