Сделать Unicode из переменной, содержащей QString - PullRequest
8 голосов
/ 26 ноября 2010

У меня есть поле QPlainTextEdit с данными, содержащими национальные символы (iso-8859-2).

tmp = self.ui.field.toPlainText() (QString type)

Когда я:,Как правильно преобразовать данные в поле QPlainTextEdit в юникод?

1 Ответ

3 голосов
/ 26 ноября 2010

Как уже было сказано, QPlainTextEdit.toPlainText () возвращает QString, которая должна быть UTF-16, тогда как конструктор unicode () ожидает строку байта.Ниже приведен небольшой пример:

tmp = self.field.toPlainText()
print 'field.toPlainText: ', tmp

codec0 = QtCore.QTextCodec.codecForName("UTF-16");
codec1 = QtCore.QTextCodec.codecForName("ISO 8859-2");  

print 'UTF-16: ', unicode(codec0.fromUnicode(tmp), 'UTF-16')
print 'ISO 8859-2: ', unicode(codec1.fromUnicode(tmp), 'ISO 8859-2')

, этот код выдает следующий вывод:

field.toPlainText: test16: тест ÖÄ это китайский: 最主要 的

ISO 8859-2: тест ÖÄ ????????????: ????

надеюсь, это поможет, с уважением

...