我该如何处理“超出Tcl允许的范围(U + 0000-U + FFFF)”?

时间:2018-02-09 22:30:29

标签: python python-3.x unicode tkinter

Python3中Tkinter / Tcl的一个已知问题是它只支持U+0000-U+FFFF之间的字符。

解析字符串并用占位符或代码替换不允许的字符有一些解决方案。但是我必须知道在这个有意义之前有一个不允许的角色。

我是否真的必须对我放入Tkinter GUI的每个字符串使用这种解析替换算法?我的问题的关键点是我有我不知道的数据(网络馈送)。我是否必须解析这些大量数据,因为数百万个数据中有一个使用了不允许的字符?

有解决这个问题的pythonic方法吗?我可以使用解析替换算法而不浪费太多资源吗?

#!/usr/bin/env python3

from tkinter import *

if __name__ == '__main__':
    root = Tk()

    l = Listbox(root)
    l.pack()

    d = ['A', 'B', u'\U0001F384', 'D']

    for s in d:
        l.insert(END, s)

    root.mainloop()

1 个答案:

答案 0 :(得分:0)

第一个解决方案实际上是亲自解析此类字符并替换它们。

第二个及更高版本的解决方案是切换到其他GUI工具箱。我现在正在使用Gtk(PyGObject)。