2012-01-12 33 views
7

我試圖找出使用Go的Windows上的文件的編碼。做了一些研究,我發現很多關於Mozilla的Charset Detectors(chardet)的建議,但是它們很難編譯,而且我沒有任何運氣。如何檢測文件的編碼?

我也發現libguess,它似乎在Linux中被廣泛使用,但我無法使它在Windows中工作。

這是什麼最好的方法呢?在Windows上使用Go事實上是否有標準庫?

+1

其實,不要指望太多(爲什麼libguess被命名爲lib * guess *)。我強烈推薦這篇文章:http://www.joelonsoftware.com/articles/Unicode.html – 2012-01-12 15:17:28

+0

謝謝!這篇文章非常有幫助。 – 2012-01-13 03:04:55

回答

0

你可能會感興趣Enca,非常天真的字符集分析儀。我想你可以嘗試使用所有候選編碼讀取文件,並計算每種嘗試來自語言的「標準」字符頻率分佈的距離。 Enca需要一些語言信息,但我不確定它是否使用這種方法。 (這只是一個想法,它可能是可怕的誤導。)

+0

感謝分享這個庫!我會看看。 – 2012-01-13 03:07:07

+0

make後我得到了enca.exe,它可以編譯爲* .lib或* .dll嗎? – 2012-01-13 11:23:15

+0

發行版中有一個庫目標,但我不知道如何創建一個DLL。 – zoul 2012-01-13 11:54:21

1

您可以使用python包:chardet

+0

tarball包含一些字符頻率表,所以統計方法似乎是一個標準。在最壞的情況下,應該很容易挖掘頻率表並編寫定製解決方案。 – zoul 2012-01-12 15:52:48

+0

也許我可以將這個軟件包移到Go,如果我找不到任何準備使用的軟件包。 – 2012-01-13 03:06:16