【发布时间】:2021-11-03 14:45:38
【问题描述】:
我是新来的。
我通过这个post找到了这个论坛,基本上OP和我有同样的问题,但答案对我不起作用。
我想要的是发送一个通过 API 发送 whatsapp 消息的发布请求,但是如果我尝试在字母上使用重音符号,则发送的消息完全被破坏 (see the example here) 带有问题的奇怪菱形标记应该是一个“é”字符。
所以,我的问题是:我怎样才能通过 whatsapp 发送“é”?我是在搞乱编码还是什么?
这是我正在尝试做的代码:
def send_message():
headers = {
'Content-Type': 'application/json;charset=utf-8',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXXXX", "type": "text" }'
response = requests.post(url, headers=headers, data=data)
上面的代码发送了消息,但它到达了那张图片上看到的(作为奇怪的菱形)
现在这是我在看到开头提到的论坛帖子后所尝试的:
def send_message():
headers = {
'Content-Type': 'application/json',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXX", "type": "text" }'.encode('latin-1')
response = requests.post(url, headers=headers, data=data)
print(response.text)
不幸的是,结果是一样的。
【问题讨论】:
-
如果你使用
data参数,你应该先json编码。response = requests.post(url, headers=headers, data=json.dumps(data))。序列化 python 的基本类型看起来很像 json,所以它有时有效,但有时无效。
标签: python json python-requests character-encoding