U8GLIB и русская кодировка
- Войдите на сайт для отправки комментариев
Давно не писал дорогие софорумцы!
Суть такая, осваивал новый ЖК дисплей с вкусными размерами корпуса, но не на подтвержденном контролере. Гугление и помощь от создателя библиотеки U8GLIB помогли его запустить и заставить нормально работать.
На вопрос о кирилице, он ответил что у него небыло ни одного фидбека, что наводит на всякие мысли...
Вот ссылка на тикет от меня https://code.google.com/p/u8glib/issues/detail?id=202 который закончился появлением новой версии библиотеки.
Просьба к нашим гуру, которые занимались вопросом руссификации, не бойтесь и обратитесь с помощью к создателю библиотеки. Я писал через гуглопереводчик т.к. английский только на уровне чтения. В общем не бойтесь обращаться с разрабами. И глядишь появится нормальная робота с кодировкой из коробки, чему непримерно обрадуется все русскоговорящее сообщество Arduino. И да поговорите с ним о возможности самим добавлять свои шрифты как в GLCDv3
Цетирую:
Project Member #11 olikr...@gmail.com
В общем разработчик ждет когда кто-то с ним свяжется.
Я могу добавлять свои шрифты в эту библиотеку. По умолчанию все не ANSI сивмолы кодюруются двухбайтным юникодом. Библиотека его не понимает. Но понимает любые однобайтные кодировки. есть программа для перевода шрифтов .bdf в код C
Также есть редактор шрифтов FontForge который понимает BDF. В нем я переконвертировал шрифты в ISO8859-5. Подправил код среды IDE Arduino и добавил выбор кодировки которую я хочу на выходе. Вобщем ценой 10 строк кода на яве и перекомпиляции среды я достиг желаемого: Пишу на русском, показывает на русском. Пинать бедных разработчиков не мой профиль. Но работы с юникодом в библитеке явно не хватает. Может написать?
Кириллица была добавлена по моей просьбе еще полтора года назад.
Да и инструмент для добавления шрифтов он еще прошлым летом выложил.
Почиму сразу пинать, просто к ниму никто не обращался по этой проблеме. Я понимаю что вы решили проблему, но так не сможет сделать простой пользователь, например для меня это космос:) Возможно он сможет решить проблему просто, он про нее до этого не знал. Ведь для вас было по силам перебрать исходники Arduino, а для разработчика написать библиотеку на большое количество контралеров. Да и думаю вы будите не одни в решении этой проблемы, кто то еще может подключиться!
Да и инструмент для добавления шрифтов он еще прошлым летом выложил.
И как им пользоваться?
вот тут
и тут немножко
Расписал все для домохозяек...
Хорошо написано. Только я делал как то проще, без перекодировки. Надо посмотреть, может исходники остались.
И что делать с этим? Уже кстати пытался по вашему пути идти но уперся в это:(
Хорошо написано. Только я делал как то проще, без перекодировки. Надо посмотреть, может исходники остались.
Вот и получается как с "домастской сталью", шучу конечно, но ничего не понятно.
из "C:\Program Files\FontForge\bin\share\locale" удалить папку "ru". Под убунтой кстати такой проблемы не наблюдается....
сковертировать в код с и заменить или добавить как новый
А где взять соответствие номеров сиволов в шрифте с данными?
И как сгенерировать С-шный шрифт?
или я вас не понял или вы не читали по ссылкам выше. Вообще предпологается хоть какое нибудь понимание как это все работает - если его нет то только гугл!(включая все смежные темы)
Пришел к выводу, что лучше буду рисовать буквы битовыми картинками в шестнадцатиричной системе, чем лезть в такие дебри где костыль на костыле...
И просто хотелось упростить жизнь, и себе и другим, а лезть в исходники Ардуины, это уровень уже не для ардуинщика! К томуже я врятли вспомню как это делал через пол года, а скачав библиотеку это не понадобится делать. Пускай лучше русский будит через опу написан чем с таким гемороем, я честно разобрался как это делалось в GLCDv3 но тут уже мозг плавится, сейчас посмотрел на шрифты, которые в библиотеке чтобы переделать один с размером 32 по вертикали т.к. одна цифра там уплыла относительно других на один пиксель, пока хз куда копать, но разберусь.
Обещал разобраться, разобрался, ничего в исходниках менять не нужно, просто нужно заменить в файле u8g_font_data.c который находится в arduino-1.0.5\libraries\U8glib\utility\ открываете в блакноте (или лучше в нормальном редакторе, у меня из сборке тотал-командера звать AkelPad т.к. блокнот может накосячить при сохранении) и заменяете все что касается шрифта u8g_font_unifont_0_8, начиная с коментария и заканчивая концом массива там что написанно ниже.
Проверка этим:
P.S. Скорее всего еще нарисую шрифт 5х7, этот был исправлен, кроме описанных изминений больше ничего не нужно, чтобы приминить изменения нужно сохранить файл и перезапустить Arduino IDE
Поздравляю - вернулись к тому с чего начали. 5х8 6х10(компильнутые в кодировке ISO8859-5) они уже есть в BDF. Там русские символы не в первой кодовой странице (коды символов больше 255). С автором u8glib я общался - библиотека может работать только с символами с кодом 0...255
ну вот чего вам не нравится? шрифт работает, без переделывания BDF, без его же доп загрузки, без изменения Arduino IDE, что ж еще не так? У меня семерка х64. Шрифты не доставлял, просто пишу в IDE русский текст и он выводится, без доп плясок с бубном.
точно выводится?
Ну проверте!!! могу видео снять, только верните настройки в IDE, а еще лучше в голую залейте
З.Ы. там в шрифте были строки перепутаны, если смотреть в шестнаднатиричной системе.
просто у меня из голой не выводилось, оттого и начал всю эту возьню.....
я изначально хотел вообще перерисовывать шрифт который хоть как-то из своего набора откликается на русский... пригляделся только не понял какая это кодировка и как нумеруется символ, с верху написан iso10646-1 но гугление пнуло меня в юникод... а там вообще ни на что не похоже... ну и начал плисать от того что есть, да и програмист с меня никакой, я до сих пор не разобрался с классами) фообще сидел отрисовывал картинку символа в экселе... так и разобрался что откуда.
Переделываю сейчас шрифт u8g_font_unifont_0_8 который по сути 16х16 в шрифт 5х7, все было хорошо до того момента как перехожу к следующему символу как только перерисовываю знак вопросы который является последним во второй строке в шестнадцатиричной таблице шрифта отрисовка почти правильная в исходнике по ссылке https://code.google.com/p/u8glib/wiki/fontgroupunifont смотреть u8g_font_unifont_0_8, до этого все нормально помогите разобраться как и что тут происходит, например непонятно назначение первых 23 значений до восклицательного знака. есть еще одно место оно подписано в коде ниже тоже после перерисовке все знаки после них сыпятся.
Если кому надо тут русские шрифты: http://arduino.ru/forum/programmirovanie/russkie-shrifty-dlya-biblioteki-u8glib
Доброго времени суток.
Я пытаюсь руссифицировать одну прошивку. Она использует собственные шрифты и простым подключением русских шрифтов дело не ограничивается. Каким образом можно совместить исходный шрифт (значки из него) с русским шрифтом?
Доброго времени суток.
Я пытаюсь руссифицировать одну прошивку. Она использует собственные шрифты и простым подключением русских шрифтов дело не ограничивается. Каким образом можно совместить исходный шрифт (значки из него) с русским шрифтом?
поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano. Там подробно рассматриваются проблемы подмены шрифтов и добавления и замены символов, юникода и тд. Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...
поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano. Там подробно рассматриваются проблемы подмены шрифтов и добавления и замены символов, юникода и тд. Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...
Вопрос не в программисте а в конечном пользователе.
А так, вопрос решен, нашел исходные BDF'ки которые использовались в том проекте.
поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano.
Если рвсь о той теме, где я привожу библиотеку, то она называется "Кириллица на дисплее или что я нелаю не так". Но многократно приходилось отписываться и в других темах посвященных дисплеям вообще и кириллеце в частности.
Там подробно рассматриваются проблемы подмены шрифтов и добавления и замены символов, юникода и тд.
Скорее, особенностям кодировки UTF-8 родной для Aeduino IDE.
Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...
Любопытно, что хотя я делал библиотеку специально ради поддержки кириллицы, сам ни разу кириллицей в этой библиотеке не воспользовался (кроме, разумеется, демонстрационного примера к библиотеке).
Но с другой стороны ZMan прав: ориентироваться нужно на пользователя.
Здравствуйте!
Подскажите пожалуйста как "прилепить" данный шрифт для дальнейшего использования?