Я не могу создать файл, содержащий символы, отличные от ascii.
следующий скрипт работает нормально, если он вызывается с параметром 0
, но умирает при вызове с 1
.
Сообщение об ошибке открыто: недопустимый аргумент в C: \ temp \ filename.pl строка 15.
Сценарий запускается в cmd.exe
.
Я ожидаю, что он запишет файл с любым именем (в зависимости от параметра) äöü .txt
или äöü☺.txt
. Но мне не удается создать имя файла, содержащее смайлик.
use warnings;
use strict;
use Encode 'encode';
# Text is stored in utf8 within *this* file.
use utf8;
my $with_smiley = $ARGV[0];
my $filename = 'äöü' .
($with_smiley ? '☺' : '' ).
'.txt';
open (my $fh, '>', encode('cp1252', $filename)) or die "open: $!";
print $fh "Filename: $filename\n";
close $fh;
Я, вероятно, упускаю что-то, что очевидно для других, но я не могу найти, поэтому был бы признателен за любой указатель на решение этой проблемы.