我使用quotemeta来转义中文文件名的文件路径。但它返回错误。
代码示例:
#!/usr/bin/perl
use Encode;
my $ustring1 = "/opt/游戏美术.txt";
my $ustring2 = quotemeta $ustring1;
print "$ustring1\n" ;
print "$ustring2";
print "\n";
请帮助解释并提供解决此问题的代码。 我正在使用Perl v5.10.1 非常感谢。
更新问题:
#!/usr/bin/perl
use Encode;
use utf8;
use open ':std', ':encoding(UTF-8)';
my $ustring1 = "游戏美术";
my $ustring2 = quotemeta $ustring1;
my $rc = 0xffff & system("echo a > $ustring1.txt2");
print "$ustring1\n" ;
print "$ustring2\n";
print "$rc";
print "\n";
现在输出很好。但是txt2文件的文件名是错误的:游??美术.txt2。请帮忙
答案 0 :(得分:1)
也许,use utf 8
有帮助:
#!/usr/bin/perl
use Encode;
use utf8;
use open ':std', ':encoding(UTF-8)';
my $ustring1 = "/opt/游戏美术.txt";
my $ustring2 = quotemeta $ustring1;
print "$ustring1\n" ;
print "$ustring2";
print "\n";
输出:
/opt/游戏美术.txt
\/opt\/游戏美术\.txt