ASCII изначально поддерживается экспатом, поэтому он не должен искать для него файл .enc
.
Expat имеет встроенные кодировки для: `UTF-8`,` ISO-8859-1`, `UTF-16` и
`US-ASCII`. Кодировки устанавливаются либо через декларацию XML
атрибут кодировки или через параметр ProtocolEncoding для XML :: Parser
или XML :: Parser :: Expat.
Для кодировок, отличных от встроенных, expat вызывает функцию
load_encoding в пакете Expat с именем кодировки. Эта функция
ищет файл в списке путей @XML :: Parser :: Expat :: Encoding_Path, который
соответствует имени в нижнем регистре с расширением .enc. Первый это
находит, загружает.
Может быть, указан XML-документ
encoding="ASCII"
вместо
encoding="US-ASCII"
Библиотека не признает, что с ними следует обращаться одинаково.
$ perl -MXML::Parser -e'
XML::Parser->new->parse(
qq{<?xml version="1.0" encoding="$ARGV[0]"?><root/>});
' US-ASCII
$ perl -MXML::Parser -e'
XML::Parser->new->parse(
qq{<?xml version="1.0" encoding="$ARGV[0]"?><root/>});
' ASCII
Couldn't open encmap ascii.enc:
No such file or directory
at .../XML/Parser.pm line 187