2009-05-04 10 views
1

文字列のエンコーディングを検出(および、おそらくはデコード)できるPythonライブラリがありますか?QStringエンコーディングの操作

私はchardetを見つけたが、それは使用して、私にエラーを与える:また

chardet.detect(self.ui.TextFrom.toPlainText()) 
got: = chardet.detect(self.ui.TextFrom.toPlainText()) 
File .... u.feed(aBuf) File .... 
if self._highBitDetector.search(aBuf): 

TypeError: buffer size mismatch 

print type(self.ui.TextFrom.toPlainText()) 
# <class 'PyQt4.QtCore.QString'> 
+1

あなたはchardetはあなたが望むものではない理由を説明する必要がある - それはあなたが求めているまさにです。 – RichieHindle

+0

申し訳ありませんが、それはおそらく、そのチャードは私が必要なものではありません。 .... = chardet.detect(self.ui.TextFrom.toPlainText()) ファイル: chardet.detect(self.ui.TextFrom.toPlainText()) を得た:私が使用して、このlibの中にエラーが発生していますu.feed(aBuf) ファイル.... if self._highBitDetector.search(aBuf): TypeError:バッファサイズの不一致 – Ockonal

+0

あなたが投稿したすべてのコードで、self.ui.TextFrom .toPlainText() - まだUnicode文字列を与えていないのでしょうか?または文字列ではないものは何ですか?印刷タイプ(self.ui.TextFrom.toPlainText())は何を与えますか? – RichieHindle

答えて

7

あなたのQStringchardetに渡す前に、Pythonの文字列に変換する必要があります。これに

chardet.detect(self.ui.TextFrom.toPlainText()) 

:これを変更

chardet.detect(str(self.ui.TextFrom.toPlainText())) 
+0

ありがとう、それは正常に動作します。 – Ockonal

2

私は、これは別のオプションであると思います。

http://cthedot.de/encutils/

A collection of helper functions to detect encodings of text files (like HTML, XHTML, XML, CSS, etc.) retrieved via HTTP, file or string.

+0

ありがとうございます。私はこれを試してみる。 – Ockonal

+0

文字列のエンコード情報を取得するにはどうすればよいですか? encutils.getEncodingInfo(text = self.ui.TextFrom.toPlainText()) エラーを呼び出します。AttributeError:_getTextTypeで検索します。 – Ockonal