[devel] Russian characters & GTK2 (pango)
Sviatoslav Sviridov/Lintec Project
=?iso-8859-1?q?svd_=CE=C1_lintec=2Eminsk=2Eby?=
Пн Сен 8 11:33:10 MSD 2003
On Mon, 8 Sep 2003 10:50:16 +0400
Andrey Brindeew <abr на altlinux.ru> wrote:
> Hi!
>
> Попытался собрал на днях JPilot с GTK2 и понял, что там всё плохо с
> интернационализацией. Программа пытается выводить однобайтовые данные, в
> результате чего в половине контролов мы не видим ничего, а в другой
> половине - так называемые "кракозябры" (ISO).
>
> Вопрос следующий: как правильно выводить русские символы в программе на
> языке Си, которая использует GTK2?
Надо использовать строки в UTF-8 для отображения.
> P.S. Русский перевод, который сделан в CP1251, выводится в GTK2-сборке
> без проблем, в отличие от других данных, которые jpilot выводит
> самостоятельно. При работе с GTK2-сборкой в консоли видим кучу
> ворнингов:
>
> ** (jpilot:18821): WARNING **: Invalid UTF8 string passed to
> pango_layout_set_text()
>
> Но вызова этой функции напрямую в коде jpilot я не нашел.
>
> P.P.S. Ссылки на программы, где сделана нормально интернационализация,
> будет достаточно.
Как и где правильно - не знаю :), но, как минимум, знаю, что synaptic и
grip имеют в себе код по перекодированию.
В synaptic использовались g_utf8_validate() и g_locale_to_utf8(). В grip
производятся более разнообразные преобразования, и там используется
g_convert().
-- Sviatoslav Sviridov <svd at lintec dot minsk dot by>
/* icq: 10845380; jid: svd at altlinux dot org; */
[...] нет необходимости поддерживать целостность того, чего нет.
-- ldv in devel@
Подробная информация о списке рассылки Devel