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

Telegram API HTML解析模式下发送含#的URL锚点被截断如何解决

问题原因

你出现该问题的核心原因是手动拼接请求URL的写法错误:# 是HTTP协议标准中的URL片段标识符,当它直接出现在请求URL里时,会被HTTP客户端在发送请求前直接截断,不会传递到Telegram服务器,这和Telegram的HTML解析模式没有关系。

修复方案

不要手动拼接查询参数,直接使用requests库内置的参数传递逻辑,工具会自动对特殊字符做合规编码,不需要你手动转义#,修复后的代码示例如下:

import requests

token = "替换为你的Bot Token"
chat_id = "替换为目标聊天ID"
# 注意:链接补全https://前缀,避免客户端识别异常
msg = "<a href='https://www.example.com/#/otherparams'>inline link example</a>"

# 推荐:参数放在POST请求体中,避免URL长度限制和特殊字符截断问题
resp = requests.post(
    f"https://api.telegram.org/bot{token}/sendMessage",
    data = {
        "chat_id": chat_id,
        "parse_mode": "html",
        "text": msg
    }
)

如果你习惯把参数放在查询字符串中,也可以用params参数传递,同样会自动处理编码:

resp = requests.post(
    f"https://api.telegram.org/bot{token}/sendMessage",
    params = {
        "chat_id": chat_id,
        "parse_mode": "html",
        "text": msg
    }
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:51:01