Генератор QR-кода для SMS
100% приватно и локально — ваши данные никогда не покидают браузер. Эти QR-коды постоянны и никогда не истекают.
Настройки: SMS
Дизайн
Добавить логотип в центр
Изображение читается на этой странице и встраивается в код как data: URL. Оно никуда не загружается и остаётся внутри файла, который вы скачиваете.
Ещё параметры дизайна
Тёмная половина кода. Держите её заметно темнее фона по светлоте.
Закрашивает и свободную зону, и промежутки между модулями. Прозрачный фон исключает его из файла, поэтому им ничего не рисуется.
Контраст 11.5:1 между модулями и фоном.
PNG и WebP сохраняют альфа-канал; в SVG прямоугольник фона просто отсутствует. Светлой половиной контраста становится то, на чём код размещён.
Градиент заливает только тёмные модули. Контраст, который реально получает сканер, задаёт его светлый конец, поэтому оба конца должны оставаться тёмными.
Второй цвет, используется только при выбранном градиенте. Контраст измеряется по нему наравне с первым.
Градусы по часовой стрелке от направления слева направо. Радиальный градиент расходится из центра, поэтому угол действует только для линейного.
Скруглённые формы закрывают меньшую часть каждой ячейки. Центр остаётся закрытым, а именно его считывает декодер, но плотный код в мелкой печати надёжнее читается квадратами.
Кольцо трёх поисковых узоров.
Зрачок внутри каждого поискового узора.
Пустое поле вокруг кода, измеряется в модулях. Стандарт задаёт минимум 4.
Более высокий уровень переносит больше повреждений и стоит ёмкости, поэтому то же содержимое даёт более плотный символ.
В центре стоит логотип, и он удерживает уровень H. Предел его ширины следует за символом: 14% на самом маленьком коде и 30% на плотном.
Предпросмотр и экспорт
Введите номер, на который должно уйти сообщение.
Экспорт
Растр, для экранов
Заполните форму, чтобы включить скачивание.
Размер экспорта и закодированный текст
- Данные
- Пока не закодировано
- Символ
- Ещё не построен
- Коррекция
- M
Ожидание ввода
QR-код SMS открывает приложение сообщений с вашим номером в поле «Кому» и уже написанным текстом. Отправитель всё равно должен нажать «Отправить», и его оператор возьмёт за это сообщение обычную плату.
Когда его сканируют
Телефон открывает приложение сообщений с заполненными номером и черновиком текста, а отправляет сообщение сам человек.
Почему SMSTO:, а не sms:
Здесь пишется полезная нагрузка вида SMSTO:+79161234567:СТЕНД14 пришлите прайс-лист. Номер стоит между первым и вторым двоеточием, а сообщение идёт до конца строки. Синтаксис пришёл из проекта штрихкодов ZXing; никакого RFC за ним нет, и общепринятым он стал потому, что его читает и пишет самый широкий круг приложений-сканеров.
Формально описанная альтернатива — URI sms: из RFC 5724, который пишется как sms:номер?body=текст. Это настоящий стандарт, но реализации расходятся ровно там, где это здесь важно. Обработка параметра body и нескольких получателей различается между iOS и Android, поэтому код, построенный на sms:, работает на одной платформе и даёт пустой черновик на другой.
Разделителем служит только первое двоеточие после префикса. Считыватель берёт номер до него, а всё после него — как текст сообщения, поэтому двоеточие или точка с запятой внутри сообщения передаются ровно как набраны и не требуют экранирования. Экранирование было бы худшим отказом: каждый считыватель, который не снимает экранирование, вставил бы в черновик видимую обратную косую черту. Номер тоже не может сломать разделитель, потому что перед записью он сводится к плюсу и цифрам.
Как правильно записать номер
Пишите номер в формате E.164: ведущий плюс, код страны, затем абонентский номер без чего-либо ещё. Российский мобильный, напечатанный как 8 916 123-45-67, становится +79161234567: национальная приставка 8 уходит, а её место занимает код страны. Пробелы, скобки и дефисы снимаются перед кодированием, но национальную приставку генератор угадать не может, поэтому убирать её нужно при вводе.
Плюс важнее, чем кажется. Без него телефон считает цифры национальным номером и набирает их в той стране, где зарегистрирована SIM-карта, поэтому код, напечатанный для магазина в Казани, не сработает у стоящего прямо перед ним посетителя с немецкой SIM-картой.
Пяти- и шестизначные короткие номера — отдельная система. Они выделяются по странам и операторам, кода страны не принимают и из зарубежной сети недоступны. Если напечатать такой, ждите, что он сработает только у домашних абонентов тех операторов, которые его подключили.
Длина сообщения, кодировка и стоимость
Один сегмент SMS вмещает 160 символов, когда текст укладывается в 7-битный алфавит GSM. Один символ вне этого алфавита переводит всё сообщение в UCS-2 и опускает предел до 70 символов на сегмент, а эмодзи включают такой перевод всегда. Более длинные сообщения разбиваются и собираются обратно, а отправитель платит за каждый сегмент.
Внутри QR-кода те же символы стоят вдвойне. Всё, что вне ASCII, хранится как UTF-8 в байтовом режиме, поэтому слово с диакритикой или эмодзи занимает от двух до четырёх байт на символ и поднимает символ на версию вверх.
Короткое кодовое слово обычно и есть смысл предзаполненной SMS. Она приходит как обычное сообщение с обычного номера, поэтому отправитель волен оставить или переписать её, отчёта о доставке нет и гарантии, что он вообще отправит, тоже нет.
Вопросы и ответы
Отправляется ли сообщение само?
Нет. Сканирование умеет только открыть черновик в приложении сообщений. Номер получателя и текст заполнены, а человек читает, правит или удаляет сообщение и нажимает «Отправить». Пока он этого не сделает, с его телефона ничего не уходит.
Почему здесь SMSTO:, а не стандарт sms:?
У SMSTO: нет RFC, но именно этот синтаксис приложения-сканеры читают наиболее единообразно. URI sms: из RFC 5724 описан как положено, однако iOS и Android расходятся в том, как обрабатываются параметр body и несколько получателей, поэтому написанный так текст может прийти пустым на одной из двух платформ.
Можно ли использовать пятизначный короткий номер?
Закодировать его можно, но работать он будет только у абонентов той страны и тех операторов, где короткий номер подключён. Короткие номера не принимают кода страны и недоступны из-за рубежа, поэтому посетитель с иностранной SIM-картой получит неудачную отправку, а не внятную ошибку.
Работают ли эмодзи в предзаполненном тексте?
Работают, ценой двух вещей. На стороне оператора эмодзи переводит всё сообщение в UCS-2, урезая сегмент со 160 символов до 70. В QR-коде эмодзи занимает четыре байта полезной нагрузки, поэтому горстка таких символов может поднять символ на версию вверх.
Как работает статический QR-код
Каждый код на этом сайте статический: данные записаны в сами чёрно-белые модули. При чтении кода ничего не запрашивается, ни один наш сервер в этом не участвует и никакая подписка не держит напечатанный код на плаву. То же свойство и есть ограничение: после печати изменить его содержимое нельзя.
Дальше то, прочитается ли напечатанный код, решают три вещи: во сколько байт вышли данные, какой уровень коррекции поглощает повреждения и какой ширины получается один модуль на бумаге. Эти руководства разбирают каждую из них с цифрами.