使用 discord.py 重写将消息对象转换为带有表情符号的字符串
Convert a message object to a string with emojis with discord.py rewrite
我正在尝试在 python 中创建一个机器人,它将服务器上的每条消息记录在 .txt 文件中
@client.event
async def on_message(message):
id = client.get_guild(Server ID)
f= open('logs_messages.txt','a+')
f.write(f'{message.author.id} \n \n')
f.write(f'Date et heure {datetime.now()} \n \n')
f.write(f'ID du channel:<#{message.channel.id}> \n \n')
f.write(f'{message.content} \n \n \n \n')
f.close
所以代码可以正常工作,当消息包含表情符号时执行,程序不会写任何东西 return 这个:
File "C:\Users\psg97\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "bot.py", line 37, in on_message
f.write(f'{message.content} \n \n \n \n')
File "C:\Users\psg97\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f389' in position 0: character maps to <undefined>
有谁知道如何将这些表情符号转换成我可以将它们写入 .txt 文件的方式?
使用
将您的内容编码为 utf-8
f.write(f'{message.content.encode('utf8')} \n \n \n \n')
您可以使用 utf-8
编码打开整个文件:
with open('logs_messages.txt','a+', encoding='utf-8') as f:
f.write(f'{message.author.id} \n \n')
f.write(f'Date et heure {datetime.now()} \n \n')
f.write(f'ID du channel:<#{message.channel.id}> \n \n')
f.write(f'{message.content} \n \n \n \n')
f.close
我正在尝试在 python 中创建一个机器人,它将服务器上的每条消息记录在 .txt 文件中
@client.event
async def on_message(message):
id = client.get_guild(Server ID)
f= open('logs_messages.txt','a+')
f.write(f'{message.author.id} \n \n')
f.write(f'Date et heure {datetime.now()} \n \n')
f.write(f'ID du channel:<#{message.channel.id}> \n \n')
f.write(f'{message.content} \n \n \n \n')
f.close
所以代码可以正常工作,当消息包含表情符号时执行,程序不会写任何东西 return 这个:
File "C:\Users\psg97\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "bot.py", line 37, in on_message
f.write(f'{message.content} \n \n \n \n')
File "C:\Users\psg97\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f389' in position 0: character maps to <undefined>
有谁知道如何将这些表情符号转换成我可以将它们写入 .txt 文件的方式?
使用
将您的内容编码为utf-8
f.write(f'{message.content.encode('utf8')} \n \n \n \n')
您可以使用 utf-8
编码打开整个文件:
with open('logs_messages.txt','a+', encoding='utf-8') as f:
f.write(f'{message.author.id} \n \n')
f.write(f'Date et heure {datetime.now()} \n \n')
f.write(f'ID du channel:<#{message.channel.id}> \n \n')
f.write(f'{message.content} \n \n \n \n')
f.close