使用 Telegram bot API 时,希伯来语文本应按 RTL 对齐。相反,它在 LTR 中对齐不正确。
要求:
POST /botXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXX/sendPhoto HTTP/1.1
Host: api.telegram.org
Content-Type: application/json
Content-Length: 134
{
"chat_id": "XXXXXXXXX",
"photo": "XXXXXXXXX",
"caption": "בדיקה",
"parse_mode": "HTML"
}
结果(红色箭头显示文本应如何对齐):
请帮忙如何解决这个问题。谢谢
您遇到的问题是由于 Telegram Bot API 中处理文本方向(RTL 或 LTR)的方式造成的。默认情况下,Telegram 不会根据语言或内容自动检测文本方向。由于希伯来语是 RTL(从右到左)语言,因此您需要显式强制 RTL 对齐。
要解决对齐问题,您可以使用 Unicode 控制字符 强制 RTL 方向。具体来说:
(RLE)
\u202B
Unicode 字符。
\u202C
Unicode 字符after 文本关闭它。
POST /botXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXX/sendPhoto HTTP/1.1
Host: api.telegram.org
Content-Type: application/json
Content-Length: 140
{
"chat_id": "XXXXXXXXX",
"photo": "XXXXXXXXX",
"caption": "\u202Bבדיקה\u202C",
"parse_mode": "HTML"
}
\u202B
:从右到左嵌入(强制 RTL 对齐)。
בדיקה
:您的希伯来语文本。
\u202C
:流行方向格式(将文本方向重置为默认值)。
בדיקה
将显示正确对齐的从右到左(RTL)。
Python 示例:
text = "\u202Bבדיקה\u202C"