2009-10-12 3 views
1

Я работаю над приложением перевода, в котором пользователям разрешено вводить английский язык, и мне нужно преобразовать его на целевой язык и отобразить в текстовом поле. Я сталкиваюсь с проблемами при отображении символов Unicode.Оказание символов Юникода правильно в текстовом поле

Сложные символы не отображаются правильно. Я знаю, что windows использует Uniscribe для рендеринга сложных персонажей. Так что я должен использовать это явно, чтобы получить правильный рендеринг? Что эквивалентно Uniscribe в LINUX и MAC?

Я использую C++ с каркасом wxWidgets и пытаюсь отображать символы юникода в текстовом поле. Любая помощь будет замечательной!

+0

Ваш wxWidgets lib скомпилирован как unicode, не так ли? –

+0

Да. Он скомпилирован как unicode. –

ответ

0

Учитывая, что поддержка Uniscribe в wxWidgets была всего лишь Google Summer of code idea this year, кажется маловероятным, что она работает сегодня.

Там нет тривиального Linux или Mac эквивалента Uniscribe

+0

Спасибо. Если в Linux нет эквивалента, как правильно выглядят программы, такие как веб-браузеры? Я немного смущен. –

+1

Не знаю точно. Очевидно, что одним из вариантов было бы сделать это сами - просто дайте ОС растровое рисование вместо строки. Но, насколько я знаю, еще одна общая альтернатива - просто не создавать сложные сценарии вообще. Имейте в виду, что простые вещи, такие как китайский, не требуют Uniscribe, это всего лишь вопрос правильного шрифта. Реальное сложное вещество происходит, например, Арабском или тамильском, где формы букв зависят от окружающего текста. Это для Uniscribe. – MSalters

0

Читайте на Панго. Это библиотека, которая поддерживает полный рендеринг OpenType в Linux. У Мака другая история.

Смежные вопросы