Ahoj,
dělám v Perlu program, kde potřebuju zpracovat XML soubor se znaky Unicode. Program mi soubor zpracovává, řekl bych v pořádku. Stejně tak v pořádku zpracovává standardní vstup. Ale nějak to nejde do sebe. Příklad asi bude lepší.
pokus.xml
<soubor>
<tag name="abc">
<xyz/>
<pqr/>
</tag>
<tag name="äbc">
<xyz/>
<pqr/>
</tag>
</soubor>
pokus.pl:
use XML::Simple;
use utf8;
use encoding 'utf8';
$soubor = XMLin("pokus.xml");
print exists $soubor->{'tag'}->{'abc'} ? "Existuje položka abc\n" : "Neexistuje položka abc\n";
print exists $soubor->{'tag'}->{$ARGV[0]} ? "Existuje položka $ARGV[0]\n" : "Neexistuje položka $ARGV[0]\n";
print exists $soubor->{'tag'}->{'äbc'} ? "Existuje položka äbc\n" : "Neexistuje položka äbc\n";
print exists $soubor->{'tag'}->{$ARGV[1]} ? "Existuje položka $ARGV[1]\n" : "Neexistuje položka $ARGV[1]\n";
Po zadání
perl pokus.pl abc äbc
mi to vyplivne
Existuje položka abc
Existuje položka abc
Existuje položka äbc
Neexistuje položka äbc
V terminálu mám nastaveno kódování utf-8, soubor je taky v utf-8, v programu používám utf-8, takže by to mělo být kompatibilní, nebo ne? Je potřeba ten standardní vstup nějak upravit?