2014-09-03 5 views
0

인코딩 (문자 집합/문자 인코딩/문자 집합/문자표/코드 집합/코드 페이지)을 포함하지 않는 XML이 있습니다.파일의 문자 인코딩을 찾으려면 어떻게합니까?

$fileName = $exportDirectory . $fileName; 
open FILE, ">$fileName" or die; 

질문 :이에서

  1. <?xml version="1.0" encoding="UTF-8"?> 
    

    는 XML은 Perl 스크립트에 의해 생성 된 다음과 같은되고이 발췌 한 것입니다 : 이것은 않는 하나의 예이다 생성 된 XML의 인코딩을 쉽게 찾을 수 있습니까?

  2. 다른 원본 정보 (Oracle 데이터베이스와 같은)를 쿼리하고 XML 파일에 데이터를 추가하는 스크립트입니다. charset 인코딩은 정보 소스에 의해 결정됩니까? 아니면 열린 파일 작업에 의해?
  3. 일반적으로 임의 파일의 인코딩을 쉽게 찾을 수 있습니까?

    펄 -MXML :: LibXML -e 'XML :: LibXML-> load_xml (위치 => "2.xml")' 2.xml : 1,364,531

나는 LibXML을 사용하려고 : 파서 오류 : 입력이 적절하지 않습니다. UTF-8, 인코딩을 나타냅니다! 바이트 : 나는 충분한 정보를 제공 희망

^ t에 의한에서 0xBF 0x30에 아님 0x39 0x20에 여성 봄 09에 발표했다. 추가 정보가 필요한 경우 알려주십시오.

+0

중복 : http://stackoverflow.com/questions/637855/how-to-best-detect-encoding-in-xml-file –

답변

1

enca 또는 chardet을 사용할 수 있습니다.

직접 enca를 컴파일해야 할 수도 있습니다. Chardet의 경우 repo에 패키지 된 스크립트가 포함될 가능성이 있습니다.

Enca는 유럽 언어에서만 작동하며 파일의 언어를 지정해야합니다. Chardet은 8 비트 인코딩으로 인코딩 된 유럽 언어를 차별화하는 데 악영향을 미치지 만 유럽 이외의 텍스트와는 더 잘 작동합니다.