我想将 Gtk.Clipboard.get() 返回值转换为 utf-8。
gtk3
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 字符时才有效,但如果有一些国家字符(法语/德语等),我会从 text.encode(..) 函数中收到错误:UnicodeDecodeError: 'ascii' codec can't decode byte位置 1 中的 0xc3:序数不在范围内(128)
您知道问题出在哪里以及如何使 gtk3 版本正常工作吗?
当我使用 gtk2 的 gtk.clipboard_get() 函数时,这是正确的:
import gtk
def main():
clip = gtk.clipboard_get ('PRIMARY')
text=clip.wait_for_text ()
print text
text=text.encode("utf-8")
print text
main()
此致