Я только начал использовать discord.py и хотел бы регистрировать сообщения.К сожалению, я сталкиваюсь с проблемами кодирования.Если я пишу сообщения в файл utf-8, я получаю юникод специальных символов вместо самого символа.Например, если я напишу áéőúű
в чате, мой бот запишет это в файл следующим образом: \u00e1\u00e9\u0151\u00fa\u0171
.Как я могу сделать так, чтобы неважно, какой специальный символ кто-то печатает, я записываю в файл точный символ (поэтому ожидаемый результат будет состоять в том, чтобы увидеть те же символы в файле, как если бы я копировал их из разногласия в файл).).
Так как это просто базовый код типа "привет, мир", я скопирую здесь полный код:
import json
import discord
import os
from time import gmtime, strftime
client = discord.Client()
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
userName = message.author.name + "#" + message.author.discriminator
writeMessageToFile(filePath='D:\Projects\Discord\messages.json', userName=userName, message=message.content)
def writeMessageToFile(filePath:str, userName:str, message:str):
messagesData = {}
timeStamp = strftime("%Y-%m-%d %H:%M:%S", gmtime())
if os.path.isfile(filePath):
with open(filePath, "r", encoding='utf_8') as jsonFile:
messagesData = json.load(jsonFile)
userMessages = messagesData.get(userName, None)
if userMessages is None:
messagesData[userName] = [{'TimeStamp': timeStamp, 'Message': message}]
else:
messagesData[userName].append({'TimeStamp': timeStamp, 'Message': message})
with open(filePath, "w", encoding='utf_8') as jsonFile:
json.dump(messagesData, jsonFile, indent=2)
if __name__ == '__main__':
token = 'XXXXXXXXXXXXXXXXXXXXXXXXX'
client.run(token)
Заранее спасибо за помощь.