2012-01-12 4 views
7

나는 Go를 사용하여 Windows에서 파일의 인코딩을 알아 내려고합니다. 몇 가지 연구를하면서 Mozilla의 Charset Detectors (chardet)에 대한 많은 권장 사항을 발견했지만 컴파일하기가 어렵고 운이 좋지 않습니다.파일 인코딩을 어떻게 검색합니까?

나는 또한 libguess를 발견했으며 Linux에서 널리 사용 된 것으로 보이지만 Windows에서 작동하게 만들 수는 없습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? Go on Windows에서 사용할 실질적인 표준 라이브러리가 있습니까?

+1

사실, 너무 많이 기대하지 마십시오 (libguess의 이름이 lib * guess * 인 이유가 있습니다). 나는이 기사를 매우 추천한다 : http://www.joelonsoftware.com/articles/Unicode.html –

+0

고마워! 이 기사는 매우 유용합니다. –

답변

0

Enca, 매우 소박한 문자 집합 분석기에 관심이있을 수 있습니다. 나는 모든 후보 인코딩을 사용하여 파일을 읽으려고 시도하고 각각의 시도가 언어에 대한 "표준"문자 빈도 분포에서 얼마나 멀리 떨어져 있는지 계산할 수 있다고 생각합니다. Enca는 일부 언어 정보가 필요하지만이 방법을 사용하는지 확실하지 않습니다. (이는 단지 생각 일 뿐이며 잘못 읽었을 수도 있습니다.)

+0

이 lib를 공유해 주셔서 감사합니다! 제가 확인하겠습니다. –

+0

make 후 enca.exe가 생겼습니다. * .lib 또는 * .dll로 컴파일 할 수 있습니까? –

+0

배포판에 라이브러리 대상이 있지만 DLL을 만드는 방법을 모릅니다. – zoul

1

python 패키지는 chardet입니다.

+0

tarball에는 몇 가지 문자 빈도 테이블이 포함되어 있으므로 통계적 접근 방식이 표준으로 보입니다. 최악의 경우 주파수 테이블을 파고 사용자 정의 솔루션을 작성하는 것이 쉬워야합니다. – zoul

+0

아마 내가 사용할 패키지를 찾을 수없는 경우이 패키지를 Go로 포팅 할 수 있습니다. –

관련 문제