我想改变信仰Gtk.Clipboard.get()将值返回到utf-8。在
from gi.repository import Gtk, Gdk
def main():
clip = Gtk.Clipboard.get (Gdk.SELECTION_PRIMARY)
text=clip.wait_for_text ()
print text
text=text.encode("utf-8")
print text
main()
它只适用于选定的文本只保留ascii字符,但如果有一些国家字符(法语/德语等),我会从文本.编码(..)功能: UnicodeDecodeError:“ascii”编解码器无法解码位置1中的字节0xc3:序号不在范围内(128)
你知道问题出在哪里了吗?如何让gtk3版本工作?在
当我使用gtk2时,这是正确的gtk.clipboard\u获取功能():
^{pr2}$谨致问候
wait_for_text()
确实返回str
类型,但这不是错误的:utf-8字符串由str
类型表示。在我还想到,这条线总是会产生错误:
因此,我的gtk3示例的行为是正确的。结论:
text.encode("utf-8")
手术应该取消。在猜猜看。根据文档,剪贴板的
wait_for_text()
方法应该已经为您提供UTF-8编码的字符串。可能是gtk3版本错误地返回了str
而不是unicode
对象。要测试这个,请尝试添加看看它是什么样的物体。在
您可以尝试
utext = text.decode('utf8')
来获取unicode
对象。在相关问题 更多 >
编程相关推荐