Many thanks Nam, I followed your suggestion and modified a bit as _UNICODE_RANGE = re.compile(u'[^\u0000-\uFFFF]', re.UNICODE) ... except tk.TclError: # when it fails try to remove unicode outside the accepted range self.text.insert("0.0", _UNICODE_RANGE.sub("?",log.messages))
which is faster Vasilis ________________________________ From: Nam Nguyen [namngu...@google.com] Sent: Monday, January 04, 2021 18:39 To: Vasilis Vlachoudis Cc: tkinter-discuss@python.org Subject: Re: [Tkinter-discuss] Unicode range Hi Vasilis, Perhaps by removing characters that are outside of that range? The error message gives you a range, from 0 to 65535. So this line might do. s = ''.join(c for c in s if 0 < ord(c) < 65535) Cheers, Nam On Mon, Jan 4, 2021 at 1:25 AM Vasilis Vlachoudis <vasilis.vlachou...@cern.ch<mailto:vasilis.vlachou...@cern.ch>> wrote: Hi all, how can I "replace/strip" unicode characters that are out of the accepted tk range before inserting them to Text()? File "/usr/lib/python3.6/tkinter/__init__.py", line 3272, in insert self.tk.call((self._w, 'insert', index, chars) + args) _tkinter.TclError: character U+1c784 is above the range (U+0000-U+FFFF) allowed by Tcl Vasilis _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org<mailto:Tkinter-discuss@python.org> https://mail.python.org/mailman/listinfo/tkinter-discuss
_______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org https://mail.python.org/mailman/listinfo/tkinter-discuss