Сдвиги символов в ответе бота
Как исправить данные сдвиги в ТГ-боте? (1 картинка: как выводит бот; 2 картинка: как должно быть выведено). Использую aiogram 3.8.
import art
@dp.message(F.text)
async def fn(message: types.Message):
Art = art.text2art(message.text)
await message.reply(f'{Art}')
Ответы (1 шт):
Ваш бот выводит всё правильно. Проблема не в боте, а в шрифте.
В вашем шрифте разные смволы имеют разную ширину, из-за этого сообщение съезжает.
Для того чтобы исправить эту проблему, вам нужен Моноширинный шрифт - в таких шрифтах все символы имеют одинаковую ширину и вывод будет соответствовать тому, что вы ожидаете.
Понятно, что влиять на шрифт пользователя вы не можете. Но у telegram есть возможность вставлять код в сообщения.
например вы можете использовать markdown
. aiogram
умеет работать с таким кодом, все что нужно, это передать параметр parse_mode = 'MarkdownV2'
:
await message.reply(f'{Art}', parse_mode='MarkdownV2')
Markdown текст в телеграм выводится в моноширинном шрифте, так что проблем быть не должно: