rap*_*pid 8 python qt qt4 pyqt
我有QPlainTextEdit字段,其中包含国家字符的数据(iso-8859-2).
tmp = self.ui.field.toPlainText() (QString type)
Run Code Online (Sandbox Code Playgroud)
当我做:
tmp = unicode(tmp, 'iso-8859-2')
Run Code Online (Sandbox Code Playgroud)
我得到问号而不是国家字符.如何将QPlainTextEdit字段中的数据正确转换为unicode?
正如所说,QPlainTextEdit.toPlainText() 返回应该是 UTF-16 的 QString,而 unicode() 构造函数需要一个字节字符串。下面是一个小例子:
\n\ntmp = self.field.toPlainText()\nprint \'field.toPlainText: \', tmp\n\ncodec0 = QtCore.QTextCodec.codecForName("UTF-16");\ncodec1 = QtCore.QTextCodec.codecForName("ISO 8859-2"); \n\nprint \'UTF-16: \', unicode(codec0.fromUnicode(tmp), \'UTF-16\')\nprint \'ISO 8859-2: \', unicode(codec1.fromUnicode(tmp), \'ISO 8859-2\')\nRun Code Online (Sandbox Code Playgroud)\n\n该代码产生以下输出:
\n\n\n\n\nfield.toPlainText:测试 \xc3\x96\xc3\x84 \xd1\x8d\xd1\x82\xd0\xbe\n \xd0\xba\xd0\xb8\xd1\x82\xd0\xb0\xd0\xb9\xd1\ x81\xd0\xba\xd0\xb8\xd0\xb9:\xe6\x9c\x80\xe4\xb8\xbb\xe8\xa6\x81\xe7\x9a\x84
\n\nUTF-16:测试 \xc3\x96\xc3\x84 \xd1\x8d\xd1\x82\xd0\xbe \xd0\xba\xd0\xb8\xd1\x82\xd0\xb0\xd0\xb9\xd1\x81\ xd0\xba\xd0\xb8\xd0\xb9:\xe6\x9c\x80\xe4\xb8\xbb\xe8\xa6\x81\xe7\x9a\x84
\n\nISO 8859-2:测试 \xc3\x96\xc3\x84 ??? ?????????:\n ????
\n
希望这有帮助,问候
\n| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |