Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Tkinter无法从entryy解码表情符号_Python 3.x_Tkinter - Fatal编程技术网

Python 3.x Tkinter无法从entryy解码表情符号

Python 3.x Tkinter无法从entryy解码表情符号,python-3.x,tkinter,Python 3.x,Tkinter,我有一个程序示例: import re import tkinter as T _nonbmp = re.compile(r'[\U00010000-\U0010FFFF]') def _surrogatepair(match): char = match.group() assert ord(char) > 0xffff encoded = char.encode('utf-16-le') return ( chr(int.from_by

我有一个程序示例:

import re
import tkinter as T
_nonbmp = re.compile(r'[\U00010000-\U0010FFFF]')

def _surrogatepair(match):
    char = match.group()
    assert ord(char) > 0xffff
    encoded = char.encode('utf-16-le')
    return (
        chr(int.from_bytes(encoded[:2], 'little')) + 
        chr(int.from_bytes(encoded[2:], 'little')))

def createSurrogate(data):
    return _nonbmp.sub(_surrogatepair, data)

def server_send(event=None):
    data = entry_field.get()
    server.send(data, False)
    entry_text.set("")

def insertEmoji(code):
    entry_field.insert("insert", code)

def emoji():
    win = T.Tk()
    win.title("Emojis")
    emoji1 = T.Button(win, text=createSurrogate("\U0001F602"), command=lambda: insertEmoji("\U0001F602"))
    emoji1.pack()
    win.mainloop()

main = T.Tk()
main.title("SDT_Client")
entry_text = T.StringVar()
entry_text.set("")
messages_frame = T.Frame(main)
scrollbar = T.Scrollbar(messages_frame)  
msg_list = T.Listbox(messages_frame, height=15, width=100, yscrollcommand=scrollbar.set)
scrollbar.pack(side=T.RIGHT, fill=T.Y)
msg_list.pack(side=T.LEFT, fill=T.BOTH)
msg_list.pack()
messages_frame.pack()

entry_field = T.Entry(main, textvariable=entry_text)
entry_field.bind("<Return>", server_send)
entry_field.pack()
send_button = T.Button(main, text="Send", command=server_send)
send_button.pack()
emojiButton = T.Button(main, text="Emojis", command=emoji)
emojiButton.pack()
我知道问题发生在生产线上:

data = entry_field.get()

但是我想不出一个解决方案。

这个错误是因为python使用了
utf-8
,而emojis使用了不同的编解码器,下面是我为您找到的一些东西:。如果你想自己改变编码,我发现这里有个问题

编辑1: 在记事本中打开代码,然后单击“文件”,然后单击“另存为”,然后单击“编码:ANSI”,然后单击UTF-8,然后用“是”确认

您可以删除部分代码来解码表情符号,因为python已经为您这样做了:)


(对愚蠢的第一个答案表示抱歉)

错误是因为python使用了
utf-8
,而emojis使用了不同的编解码器,我为您找到了以下内容:。如果你想自己改变编码,我发现这里有个问题

编辑1: 在记事本中打开代码,然后单击“文件”,然后单击“另存为”,然后单击“编码:ANSI”,然后单击UTF-8,然后用“是”确认

您可以删除部分代码来解码表情符号,因为python已经为您这样做了:)

(对愚蠢的第一个答案表示抱歉,顺便说一句)

data = entry_field.get()