You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python POST请求中发送阿拉伯语文本作为参数?

阿拉伯语参数POST请求实现方案

编码必要性说明

HTTP协议传输application/x-www-form-urlencoded格式的POST参数时,要求非ASCII字符必须做百分号编码(URL编码),否则会出现乱码导致请求校验失败。目前绝大多数站点默认采用UTF-8编码处理阿拉伯语等非拉丁字符,因此需要基于UTF-8对阿拉伯语文本做编码处理。

代码实现

使用requests库(推荐)

requests库内置自动编码逻辑,无需手动处理转义,直接传递原始阿拉伯语文本即可:

import requests

login_url = "目标站点登录接口地址"
post_params = {
    "txt": "مرحبا"
}
# requests会自动将参数按照UTF-8编码后做URL转义
resp = requests.post(login_url, data=post_params)
# 可通过以下代码查看实际发送的编码后参数
print("实际请求参数:", resp.request.body)

使用Python内置urllib库

如果需要用原生库实现,手动执行编码逻辑即可:

import urllib.parse
import urllib.request

login_url = "目标站点登录接口地址"
post_params = {
    "txt": "مرحبا"
}
# 按UTF-8编码后做URL转义,再转换为bytes格式
encoded_params = urllib.parse.urlencode(post_params, encoding="utf-8").encode("utf-8")
req = urllib.request.Request(login_url, data=encoded_params, method="POST")
resp = urllib.request.urlopen(req)

异常适配

如果上述代码请求仍然失败,可确认目标站点是否采用阿拉伯语专用编码Windows-1256(仅部分老旧站点使用),将代码中的encoding参数值替换为cp1256即可适配。

内容的提问来源于stack exchange,提问作者Abdalrahman_Ayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:45:07