Sto cercando alcune linee guida su come creare nomi di file con caratteri Unicode. Si consideri:Creazione di nomi file con caratteri Unicode
use open qw(:std :utf8);
use strict;
use utf8;
use warnings;
use Data::Dump;
use Encode qw(encode);
my $utf8_file_name1 = encode('UTF-8', 'æ1', Encode::FB_CROAK | Encode::LEAVE_SRC);
my $utf8_file_name2 = 'æ2';
dd $utf8_file_name1;
dd $utf8_file_name2;
qx{touch $utf8_file_name1};
qx{touch $utf8_file_name2};
print (qx{ls æ*});
L'output è:
"\xC3\xA61"
"\xE62"
æ1
æ2
Perché non importa se ho codificare il nome del file in UTF8 o no? (Il nome file diventa comunque UTF8 valido in entrambi i casi.)
Interessante, hai un riferimento a questo bug? Sarà risolto? –
Dubito che ci sia un biglietto. Risolvendolo probabilmente si romperà più codice di quello che verrà risolto. – ikegami
Ho qualche difficoltà a capire come funziona questo bug .., ma come capisco ora, la conclusione è che dovrei sempre codificare i nomi dei file usando per esempio 'Encode :: encode' (come ho fatto con' $ utf8_filename1') prima di creare il file? –