Вход:  Пароль:  
FreeSource: ТЗ/XorgUnicode ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

О Xorg и Unicode


Основные проблемы при работе с иксами:
1. Получение символов в нужной кодировке из буфера обмена.
2. Получение скан-кода (KeySym хотя бы) из кода символа.

keysym

К сожалению, тайна преобразования keysym в ucs (utf8) и обратно пока осталась нераскрытой.
Существует некий код под названием keysym2ucs для этих целей.
Стоит рассмотреть вопрос о наличии стандартной функции с такой возможностью.


Согласно описанию, XLookupKeysym работает только с Latin-1,
и нужно пользоваться Xmb Lookup String? или XwcLookupString для получения символов в wchar и Xutf8LoookupString для получения в utf8. Последние функции используют XIC (контекст ввода) и могут работать одновременно только с одним языком ввода (русский/греческий и пр.).


Резюме (по мотивам статьи Ивана Паскаля):
Среди Иксовых функций нет тех, которые предоставляют возможность преобразовать keysym в unicode и обратно, поэтому каждое приложение (которому нужна многоязычность)
должно делать это самостоятельно, с помощью функции
keysym2ucs.


Страница автора Markus Günther Kuhn: http://www.cl.cam.ac.uk/~mgk25/, каталог с разработками: http://www.cl.cam.ac.uk/~mgk25/ucs/


Проекты, использующие именно этот файл (код):


Также в libqt есть функция keysymToUnicode, в файле src/gui/kernel/qkeymapper_x11.cpp (определяется кстати только если не определён QT_NO_XIM)


И вот вроде как мы видим вариант реализации этого преобразования в Иксах, который вроде как
внесён туда Иваном Паскалем...
Его же видим в fltk.


В итоге функция описана в файле src/xlibi18n/Ximint.h

и не имеет объявления во внешнем заголовочном файле.
Впрочем, объявив её самостоятельно, мы всё же сможем её использовать:


А всё использование ведёт в файл imLcIc.c, где определены функции для XIC:

Теперь интересно возможно ли всё это хозяйство использовать, или всё действительно так плохо как объяснил Иван.

Основные функции по теме


Данная ссылка должна ответить на все вопросы о возможностях использования Utf 8:
http://www.koders.com/cpp/fid41BEE22CE4ADB913863C05F9FBC375DDB2B0F577.aspx

Ссылки


Ссылок на эту страницу нет


 
Файлов нет. [Показать файлы/форму]
Комментарии [Скрыть комментарии/форму]