[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