Markdown 电报不能转义某些标记字符
电报不会转义某些标记字符,例如:Markdown 电报不能转义某些标记字符,markdown,telegram-bot,Markdown,Telegram Bot,电报不会转义某些标记字符,例如: 这个很好用 _测试\\u测试_ 但是这个返回解析错误 *测试\*测试* 我做错了什么?事实上,两人都犯了错误。 { "ok": false, "error_code": 400, "description": "Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 11" } 听起来电报不支持标记转义字符,所以我建议
- 这个很好用 _测试\\u测试_
- 但是这个返回解析错误 *测试\*测试*
我做错了什么?事实上,两人都犯了错误。
{
"ok": false,
"error_code": 400,
"description": "Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 11"
}
听起来电报不支持标记转义字符,所以我建议您改用HTML:
test*test
唯一的解决方法是在parse_模式下使用HTML
您应该使用'\\'
来转义标记标记*.[`
,即改为发送此标记:
*测试\\*测试*
String escapedMsg = toEscapeMsg
.replace("_", "\\_")
.replace("*", "\\*")
.replace("[", "\\[")
.replace("`", "\\`");
不要转义]
字符。如果[
被转义,]
将被视为普通字符。pdenti的回答仅替换消息中找到的第一个字符。使用带有全局标记的正则表达式替换所有正则表达式
String escapedMsg = toEscapeMsg
.replace(/_/g, "\\_")
.replace(/\*/g, "\\*")
.replace(/\[/g, "\\[")
.replace(/`/g, "\\`");
此显示粗体字符串test\test
,不带“*”。但是我想显示粗体的test*test
…是的,你是对的。电报在转义字符方面有一些问题。我编辑了我的答案,并提出了另一种方法。可能向电报机器人支持部门报告此错误。@Oleg,你错了。您是否尝试过直接在失眠或其他REST工具中发送此序列,或者从代码中发送此序列?如果您的语言使用``作为转义字符,则必须将其加倍。它与语言无关,因为电报本身不支持此功能。为了测试,我用了邮递员。此外,您可以在电报文档中发现,它们提供了一些HTML实体(与转义相同),这对我来说适用于当前电报版本1.5.6。这在诸如“test_test”之类的文本上失败。例如,它将生成消息“test\\ u test”。对于转义多个字符,最好使用带有全局标志的正则表达式。这为我解决了这个问题!干杯当转义多个点时
尝试。替换(/\./g,“\\.”)
为甲烷工作是不正确的。每一个事件都会被替换,就像javadocs一样:你有没有在MarkdownV2
中遇到过类似的问题,真是悲哀但真实!