テレグラムは、いくつかのマークダウン文字をエスケープしません。次に例を示します。
これは問題なく動作します
_test\_test_
しかし、これは解析エラーを返します
*テスト\ *テスト*
私は何が間違っていますか?
String escapedMsg = toEscapeMsg
.replace("_", "\\_")
.replace("*", "\\*")
.replace("[", "\\[")
.replace("`", "\\`");
]
文字をエスケープしないでください。 [
がエスケープされている場合、]
は通常の文字のように扱われます。
実際には両方ともエラーが発生しています。
{
"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"
}
telegramはマークダウンのエスケープ文字をサポートしていないようですので、代わりにHTMLを使用することをお勧めします:<b>test*test</b>
唯一の回避策は、parse_mode
でHTML
を使用することです。
マークアップトークン'\\'
をエスケープするには、*_[`
を使用する必要があります。つまり、代わりにこれを送信します。
*test\\*test*