Я заметил, что команда file
Linux не возвращает никакого значения, если файл xml имеет <?xml version="1.0" encoding="UTF-8"?>
наверху. Если пролог отсутствует, то file -i somefile.xml
возвращает некоторое значение. У кого-нибудь есть идеи, почему это происходит? Я в основном заинтересован в знании кодировки файла и нашел file -i filename.xml
несколько полезным, но есть ли что-нибудь лучше в Linux для определения кодировки и кодировки?
1
2 ответа
2
Файл опирается на сигнатуру в волшебном файле, и вполне уверен, что он смотрит только на пролог, а не сканирует части файла, чтобы упростить его.
1
Догадываться о кодировках - это черное искусство, которое даже популярные браузеры не могут сделать совершенно правильно. Я предлагаю вам позволить вашему синтаксическому анализатору подчиняться кодировке XML, громко ломаться, если кодировка оказывается недействительной, и что вы исправляете ошибки кодирования в источнике.