Perl'de Unicode Duyarlı Tek Katmanları Yazmanın Doğru Yolu Nedir? açık yolu:Perl'de Unicode Duyarlı Tek Katmanları Yazma
$ echo 'フーバー' | perl -lne 'print if /フ/'
フーバー
... tür ilk görüşte üzerinde çalışmaya görünür, ancak bu sadece bir kaza olduğunu:
$ echo 'フーバー != フウバー' | perl -mString::Diff=diff -lne 'print join(" ", diff($1, $2)) if /(.*)!=(.*)/' => 29
フ?[??]バー[ ] { }フ?{??}バー
Sadece kullanarak: aşağıdaki örnekte görüldüğü gibi Unicode bayt olarak yorumlanır -C
bayrak UTF-8'e STDIN
/STDOUT
vb yeterli değildir tek başına ayarlamak için:
$ echo 'フーバー' | perl -C -lne 'print if /フ/'
[no output]
... Çünkü şimdi -e
'daki metin Unicode olarak yorumlanmadı.
$ perl -C -Mutf8 [...]
Ne demek 'echo' komutu yerel bağımsız değil? – tchrist
'$ LANG = ja_JP.sjis bash $ echo -n フ | uniquote -b ¥ x83t $ echo -n フ | hex0000 83 74' vs '$ LANG = de_AT.UTF-8 bash $ echo -n フ | uniquote -b \ xE3 \ x83 \ x95 $ echo -n フ | hex0000 e3 83 95' – daxim