Мобильные платформыФорумОбщее

Marmalade 6.2, Android: вывод русского текста через IwGxFont

#0
23:18, 8 мар 2013

Для разбора взял демку - IwGxFontBasic. Заменил текст для вывода в коде на русский.
В Font Builder создал шрифт с русскими буквами. Но текст на русском не выводится.

В итоге докопал до того, что проблема в Visual Studio 2010. Она хранит строку в кодировке 1251, а Marmalade ожидает utf-8.
Если в Студии принудильно сохранить в utf-8, то вываливается с ошибкой Maramalade

IwAssert failure:
Channel: GX_FONT
File: IwGxFontRenderer.cpp
Line: 174
Expression: num_characters > 0
Message: String is not UTF8 encoded?

Callstack:
IwGxFontDrawText
_IwGxInitPipeline

У кого-нибудь получилось вывести русский шрифт?
Как временный вариант рассматриваю хранить текст в коде виде "Privet", выполнив файле .gxfont замену русских букв на похожие латинские.

#1
0:25, 9 мар 2013

Не уверен на счет студии, но возможно сам файл исходников переконвертировать в UTF.

#2
0:33, 9 мар 2013

Все работает, если пересохранить itx-файл из этого примера в формате "UTF-8 без сигнатуры", кодовая страница 65001.
Это можно сделать в Visual Studio (через "Сохранить как").
Если не получится, пиши, скину пример:)

#3
12:05, 9 мар 2013

Что за файл itx? Я у себя таких не нашел в папке проекта :(
Файл исходника разумеется пробовал в utf-8 сохранять - результат выше написан.

Если не сложно можно скинуть работающий пример на почту ?

#4
17:18, 9 мар 2013

Ответил на почту

#5
17:30, 9 мар 2013

vmelnikov, ого, еще и локализацией! Gracias! :)
P.S. Еще головняк с хранением текста, чтобы не в коде, убран заодно.

#6
13:04, 10 мар 2013

Рад был помочь:)

Прошло более 1 года
#7
16:20, 3 дек 2014

А что за itx-файл - так и осталось в секрете?

#8
16:35, 3 дек 2014

разобрался, нет? все же выскажусь ) не храни текст в коде, все равно под ARM не скомпилируется. лучше сразу все тексты выносить в файлы и грузить оттуда. использовать можно обычный wstring из STL. + локализацию проще сделать.

#9
17:02, 3 дек 2014

Сейчас я читаю ASCII строки в char через s3eFileRead. Для wstring потребуется юзать s3eFileRead?

#10
17:47, 3 дек 2014

да без разницы, чем читать - просто в string (в нем char) символ занимает 1 байт, в wstring - 2 байта. текст должен быть в юникоде, тогда wstring адекватно считывается по два байта. ну и русский в мармеладе через ASCII и однобайтовую строку ты врятли подключишь.

#11
20:48, 5 дек 2014

Я так понимаю мармеладовское Api не поддерживает чтение в wstring? Нужно писать что-то свое?

Мобильные платформыФорумОбщее

Тема в архиве.