Сдвиги символов в ответе бота

Как исправить данные сдвиги в ТГ-боте? (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 шт):

Автор решения: artur1214

Ваш бот выводит всё правильно. Проблема не в боте, а в шрифте.

В вашем шрифте разные смволы имеют разную ширину, из-за этого сообщение съезжает.

Для того чтобы исправить эту проблему, вам нужен Моноширинный шрифт - в таких шрифтах все символы имеют одинаковую ширину и вывод будет соответствовать тому, что вы ожидаете.

Понятно, что влиять на шрифт пользователя вы не можете. Но у telegram есть возможность вставлять код в сообщения. например вы можете использовать markdown. aiogram умеет работать с таким кодом, все что нужно, это передать параметр parse_mode = 'MarkdownV2':

await message.reply(f'{Art}', parse_mode='MarkdownV2')

Markdown текст в телеграм выводится в моноширинном шрифте, так что проблем быть не должно:

введите сюда описание изображения

→ Ссылка