Question

Is there a Python library which can detect (and perhaps decode) encoding of the string?

I found chardet but it gives me an error, using:

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

Also:

print type(self.ui.TextFrom.toPlainText())
# <class 'PyQt4.QtCore.QString'>
Was it helpful?

Solution

You need to convert your QString to a Python string before passing it to chardet. Change this:

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

to this:

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

OTHER TIPS

I guess this is another option.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top