【发布时间】:2014-08-03 11:47:44
【问题描述】:
我遇到了一个让我很困惑的情况。我的界面中有一个 QLineEdit,所以当我用以下文本填充它时 ???????????? ??????????' ?????? ????????????????????? ?????? (它是阿拉姆语)并且我在我的机器上安装了正确的字体,所以我可以在浏览器中看到字体,除了这些字体我必须自己安装,所以你可能会看到一些奇怪的字符。
self.editor = QtGui.QLineEdit(self)
self.editor.setText(???????????? ????????' ???????? ???????????????????? ????????)
所以在 ui 的编辑器字段中,我可以正确看到文本,但是当我尝试重新提取该文本时,我得到了一些奇怪的东西:
editor_text = self.editor.text()
这里有一个例外:
print(editor_text)
UnicodeEncodeError: 'utf-8' codec can't encode character '\ud802' in position 0:
surrogates not allowed
pprint(editor_text)
"\ud802\udc40\ud802\udc4c\ud802\udc53 \ud802\udc4a\ud802\udc53' "
'\ud802\udc53\ud802\udc41 '
'\ud802\udc40\ud802\udc41\ud802\udc53\ud802\udc44\ud802\udc4c '
'\ud802\udc4f\ud802\udc4b'
我试过了:
editor_text = self.editor.text().encode(encoding='utf-8', errors='surrogateescape')
UnicodeEncodeError: 'utf-8' codec can't encode character '\ud802' in position 0:
surrogates not allowed
我该怎么做才能解决这个问题,谢谢
编辑:
我当然添加了标题
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
【问题讨论】:
标签: python encoding pyqt qlineedit