Telegram机器人文本格式化:parse_mode='HTML'应置于何处?
解决Telegram Bot文本HTML格式化问题
你尝试的两种parse_mode='HTML'的放置方式都是有效的,具体区别和用法如下:
1. 单条消息单独指定(局部生效)
在bot.reply_to调用时直接传入参数,仅对当前这条消息生效,适合仅部分消息需要格式化的场景:
import telebot bot = telebot.TeleBot(TOKEN) @bot.message_handler(commands=['start', 'help']) def help(message: telebot.types.Message): text = "<b>Test message</b>" # 在这里添加parse_mode参数 bot.reply_to(message, text, parse_mode='HTML')
2. Bot初始化时全局设置(全局生效)
在创建TeleBot实例时指定parse_mode,所有发送的消息默认都会用HTML解析,适合大部分消息都需要格式化的场景:
import telebot # 初始化时全局设置HTML解析模式 bot = telebot.TeleBot(TOKEN, parse_mode='HTML') @bot.message_handler(commands=['start', 'help']) def help(message: telebot.types.Message): text = "<b>Test message</b>" bot.reply_to(message, text) # 无需再单独传参数
其他格式化标签示例
除了粗体<b>,你还可以用这些标签实现不同样式:
- 斜体:
<i>斜体文本</i> - 下划线:
<u>下划线文本</u> - 删除线:
<s>删除线文本</s>
注意事项
如果全局设置了parse_mode,但某条消息不需要格式化,可以在调用时显式指定parse_mode=None来覆盖全局配置:
bot.reply_to(message, "纯文本消息", parse_mode=None)
内容的提问来源于stack exchange,提问作者Denis Novikov
相关产品推荐
相关产品推荐

