[PyQt] Problem with UTF-8 files and QScintilla
Phil Thompson
phil at riverbankcomputing.com
Mon Dec 1 11:05:08 GMT 2008
On Mon, 1 Dec 2008 11:23:38 +0100, "piotr maliński" <riklaunim at gmail.com>
wrote:
> I'm trying to use QScintilla with a file opened with QFile (and not
Python
> functions). With files that contain ascii only characters it works, but
for
> utf-8 files with non-ascii character it doesn't - the code snippet:
> ############################
> self.ui.editor.setUtf8(True)
> ...
> text =QtCore.QFile(url)
> text.open(QtCore.QIODevice.ReadWrite | QtCore.QIODevice.Text)
Have you tried it without the Text flag?
> txt = QtCore.QString(text.readAll())
> self.ui.editor.setText(txt)
> text.close()
> ############################
>
> If I use:
> self.ui.editor.setText(txt.toUtf8())
> QSci will thow exception (TypeError: argument 1 of
QsciScintilla.setText()
> has an invalid type) as it wants QString and not QByteArray :) Is there a
> file encoding safe way to open a text file and pass it to QScintilla
> widget?
> I was using codecs and normal open with try/except - try another way/
> solution but it was bit uggly, and had problems with some files
encodings.
You could also try QsciScintilla.read().
Note, QScintilla has its own mailing list.
Phil
More information about the PyQt
mailing list