utf8rus не конвертирует больше 59 символов
- Войдите на сайт для отправки комментариев
Пт, 29/04/2022 - 11:04
здравствуйте, у меня стоит задача - вывести 234 символа на экран. я думаю все знают про способ русификации adafruit gfx через glcdfont.c и utf8rus от arduinec. сама тема перекодировки то работает, я думал что сама проблема в способе получения строки из прогмема, но, даже при использовании lcd.print(utf8rus("59 русских символов")) все работает корректно, но при выводе 60 и больше символов не выводит ничего. в чем может быть проблема?
Наверное, в размере буфера? Если бы Вы дали ссылку на библиотеку, можно было бы посмотреть.
Как вариант - выводить строку кусками по 59 символов ...
в плане буфер дисплея?
библиотека https://github.com/cbm80amiga/Arduino_ST7735_Fast
я её немного переписал на размер экрана 80х160 и добавил оффестов для изображения (тк выводило криво), но думаю сути дела это особо не поменяет
в крайнем случае буду использовать этот вариант..
В плане буфер функции utf2rus если он у неё есть. Дайте же посмотреть-то.
Кстати, в приведённой Вам библиотеке её нет. Значит, её Вы где-то отдельно брали.
Напрасно думаете. Нужен ВАШ код С КОТОРЫМ У ВАС ПРОБЛЕМЫ. Не надо мне кодов "из интета". Нужно то, что работает / не работает У ВАС.
Выкладывайте, наконец, код, чтобы я мог на него посмотреть. Только выкладывайте с номерами строк, иначе получите совет "поправить что-нибудь в строке № ХЗ"
Без кода любые разговоры - в пользу бедных.
окей, до дома доберусь, скину код отредаченной либы и кода
Для начала приведу файлы измененной библиотеки ST7735:
ST7735.cpp:
ST7735.h:
А теперь и сам код + фотки того, что выводится на дисплей
59 символов (прогмем/принт выводит одинаково)
99 символов (прогмем/принт выводит одинаково)
вот только на той неделе человек спрашивал тоже самое - только у него более 10 символов не показывало - тут http://arduino.ru/forum/programmirovanie/russkie-shrifty-dlya-biblioteki-fabgl#comment-652425
избавьтесь от String - все заработает.
И откуда вы берете этот кривой вариант utf2rus. это не код arduinec
спасибо, гляну, сколько не гуглил, не нашёл такой проблемы. возможно просто старый вариант когда, хз
мой вариант для char строки из UTF в Win1251
http://arduino.ru/forum/otvlechennye-temy/programmirovanie-32-kh-razryad...
собственно вот где я взял вариант этой функции
http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
Действительно у автора именно этот код.... но это не отменяет того, что он кривой. использовать этот код не нужно.
мой вариант для char строки из UTF в Win1251
ой мама... че ж там стока наворочено? :)
а вот мой
правда упрощенный :) Ё нет
ой мама... че ж там стока наворочено? :)
как смог :)
Улыбнуло | Аппаратная платформа Arduino
"
Самое начало: лишь бы работало
"
Отлично :)
В этом коде я не вижу никаких ограничений на 59 или любую другую длину.
Но, я вижу операции с типом String без проверки того, что хватили памяти (в 99,89% ардуиновского кода таких проверок нет). Скорее всего где-то не хватает памяти. Поставьте проверки.