Telegram REST API, отправить новую строку в тексте сообщения?
Я хочу отправить сообщение через Telegram API в блоке <pre> или «` (режим синтаксического анализа HTML или уценки, у меня нет предпочтений).
Текст представляет собой длинную строку с некоторыми переносами строк. Чтобы было легче читать, я хочу отправить его в виде кода. Новые строки имеют формат \n , поэтому Telegram API справится с этим.
Но в блоке кода я не вижу новых строк. Я использовал других ботов, которые могут посылать мне несколько строк в блоке кода, поэтому я уверен, что это возможно.
Кто-нибудь может мне с этим помочь?
Это код, который я использую сейчас:
Где сообщение что-то вроде этого:
3 ответа
У меня все заработало.
Вместо отправки \n в Telegram вам нужно отправить %0A .
@Azquilt абсолютно прав, вы должны использовать urlencode
Я вижу, что вы нашли решение, но вам лучше воспользоваться urlencode закодировать ваш $message .
Это должно преобразовать ваши новые строки в %0A , а также преобразовать любые другие недопустимые или потенциально опасные символы, такие как & , # или ? , если они появляются в вашем сообщении.
Форматирование текста в Telegram
Есть 4 основных способа форматирования текста в Telegram, с помощью: встроенной панели форматирования, горячих клавиш, спецсимволов и сторонних сервисов. Увы, все они работают по разному на разных видах девайсов и операционных систем, или точнее в каком-то из случаев они работать не будут.
Далее в статье мы рассмотрим все варианты и даже н екоторые лайфхаки, которые доступны с помощью форматирования.
Встроенная панель форматирования текста Telegram
Самый быстрый и удобный способ для форматирования текста в Телеграм — это использовать встроенную панель форматирования. Эта панель отличается на разных типах девайсов и операционных системах не только внешним видом, но и функционалом. Не работает в Telegram Web.
На персональном компьютере
Для форматирования текста в приложении Telegram Desktop на ПК во время набора или редактирования сообщения:
- выделите нужный текст,
- нажмите правой кнопкой мышки / тачпада,
- в открывшемся меню выберите пункт:
«Форматирование» для Windows,
«Преобразование» для macOS. - примените нужный стиль форматирования.


В приложении Telegram для iPhone and iPad
Для форматирования текста на мобильных телефонах с iOS во время набора или редактирования сообщения:
- выделите нужный текст,
- в открывшемся меню нажмите на стрелку в право «▶» ,
- выберите пункт «BIU»,
- примените нужный стиль форматирования,
всего доступно 6 опций, для пролистывания нажимайте стрелки «▶» «◀».




В приложении Telegram для Android
Работает так же как и в iOS, но интерфейс выглядит по другому.
Для форматирования текста в Telegramна мобильных телефонах с операционной системой Android:
- выделите нужный текст во время набора / редактирования сообщения,
- нажмите на три точки в правом верхнем углу окна,
- выберите нужный стиль.
На Android есть дополнительный пункт стиля «Обычный», которым можно обнулить форматирование.


Горячие клавиши Telegram Desktop для ПК на Windows и macOS
Для пользователей ПК есть более быстрый способ – использовать горячие клавиши для быстрого управления не только форматированием, но и сообщениями, чатами и приложением в целом.
Большая часть представленных в интернете горячих клавиш для macOS оказалась не рабочей или работает на разных MacBook по разному, так что оставляем то, что работает. Как только узнаем больше, дополним статью 🙂
Форматирование текста в Telegram
- Выделить жирным
Windows: Ctrl + B
MacOS: ⌘ + B - Выделить курсивом
MacOS: ⌘ + I
Windows: Ctrl + I - Подчеркнуть текст
Windows: Ctrl + U - Зачеркнуть сообщение
Windows: Ctrl + Shift + X - Моноширинный шрифт
Windows: Ctrl + Shift + M
MacOS: ⌘ + Shift + K - Создание гиперссылки
Windows: Ctrl + K
MacOS: ⌘ + U или Shift + ⌘ + U - Отменить форматирование
Windows: Ctrl + Shift + N
Управление сообщениями
- Выбрать сообщения для быстрого ответа
Windows: Ctrl + Top ↑ / Bottom ↓ - Редактировать последнее сообщение
Windows: Top ↑ - Удалить выбранные сообщения
Windows: Delete
Управление чатами
- Переключение на следующий чат
MacOS: Option + Top ↑
Windows: Alt + Top ↑ - Переключение на предыдущий чат
MacOS: Option + Bottom ↓
Windows: Alt + Bottom ↓ - Поиск по открытому чату
MacOS: ⌘ + F
Windows: Ctrl + F - Выход из чата
MacOS и Windows: Esc
Управление приложением
- Свернуть Telegram
MacOS: ⌘ + M
Windows: Ctrl + M - Свернуть приложение в панель задач
MacOS: ⌘ + W
Windows: Ctrl + W - Заблокировать Telegram (если установлен пароль блокировки)
MacOS: ⌘ + L
Windows: Ctrl + L - Полностью закрыть приложение
MacOS: ⌘ + Q
Windows: Ctrl + Q

Спецсимволы Telegram
Еще один запасной способ для продвинутых пользователей – использование спецсимволов. Его супер возможность – работает в web-версии Telegram, недостаток – не работает на Андроид.
- **Жирный текст** – две звездочки с обеих сторон текста.
- __Текст курсивом__ – два нижних подчеркивания.
- «`Моноширинный текст«` – с обоих концов ставятся по три знака апострофа.
Другие сервисы
Так же форматировать текст в Телеграм можно с помощью ботов, отдельных сервисов и сайтов, планировщиков постов. В статье мы перечислим самые очевидные.
Команда @bold
Например, самый базовый универсальный бот, который даже не требует особых махинаций.
- В поле ввода текста в Telegram напишите комбинацию «@bold»,
- нажмите пробел,
- введите нужный текст,
- нажмите клавишу «Enter»,
- в появившемся контекстном меню выберите один из трех вариантов написания.
Минусы этого способа: есть всего три типа форматирования; после публикации сообщения есть лишний текст, что сообщение оформлено «через @bold». Быстрее и эффективнее пользоваться панелью форматирования.

Сайт 4txt.ru
Небольшой сайт с небольшим функционалом, но все же есть пару фишек недоступных обычными способами. Тут можно зачеркнуть, подчеркнуть и, что самое главное, перевернуть и отзеркалить текст, или даже перевести в азбуку Морзе.
Плюс: нестандартные функции.
Минус: мало функций в одном месте и форматирует текст целиком, а не отдельными словами в сообщении.
Сайт ru.piliapp.com
Там много интересных фишек для разных сервисов, но в данном случае нас интересует функционал по зачеркиванию текста. Тут 6 видов форматирования для зачеркивания и подчеркивания текста, которые могут пригодиться в оформлении.
Плюсы и минусы такие же как у предыдущего сайта: мало функционала в одном месте и оформляет текст целиком.
Лайфхак: моноширинный текст в Telegram
У моноширинного текста есть одна приятная особенность. На мобильных телефонах и ПК с macOS, если пользователь нажмет на такой текст, то он автоматически скопируется в буфер обмена. На устройствах с macOS и Windows такой текст еще и выделен цветом.
PHP: Telegram Bot: вставить разрыв строки в текстовое сообщение
«\n» а также «\r\n» , протестировано в текстовом сообщении, отправленном ботом telegram, для создания разрыва строки. Вместо того, чтобы показать разрыв строки, подчеркните _ появится после их использования.
Как я могу распечатать перевод строки в сообщении, отправленном ботом?
Сообщение Демо 
Любая помощь будет оценена.
Решение
Существует лучший способ! Проблема из-за URL-кодировок …
Вы можете использовать обычный текст PHP, используя \n но, передав его urlencode метод, следующим образом:
Другие решения
1) Если вы разрабатываете свой код в ОС Windows / Linux, вы можете просто использовать ввод в тексте:
2) Если ваш код работает на сервере Windows / Linux, вы можете использовать PHP_EOL постоянный вместо \n :
3) И если вы ищете решение, независимое от ОС, вы можете использовать %0A или же chr(10) для этого:
Для будущего посетителя просто цитирую ответ @Dagon в комментариях:
С помощью %0A сделает перевод строки в сообщениях телеграммы
Я решил проблему следующим образом:
Вы должны использовать urlencode для решения этой проблемы:
это может быть не показать результат, как вы хотите в Unicode-языках, таких как персидский!
Вы можете подготовить свой текст и использовать это:
Чтобы избежать проблем с кодированием и кодированием, я использовал это простое решение в своем коде:
-
Первый, Я отправляю свое текстовое сообщение в формате HTML, установив parse_mode = HTML аргумент в URL «sendMessage».
затем, Я вставляю следующий код для каждого разрыва строки:
Конечно текст переменная была завитка перед добавлением к URL: