如何在GtkTextView中插入UTF8文字?

时间:2012-04-17 09:42:47

标签: python c utf-8 gtk

我想将插入GtkTextView小部件中。在Python + pyGTK中,这一行就足够了:

self.__textBuffer.insert_at_cursor(u'\u2022')

因为我正在将我的应用程序重写为C,所以我需要翻译这行代码。

我试图这样做:

gtk_text_buffer_insert_at_cursor(textBuffer, "\x20\x22", 2);

但它没有用,只插入了2个字符"*

如何将你从'Python'转换为C?

2 个答案:

答案 0 :(得分:1)

你需要UTF-8编码,因为GTK +的编码是UTF-8。

因此:

const char bullet_utf8[] = "\xe2\x80\xa2";
gtk_text_buffer_insert_at_cursor(textBuffer, bullet_utf8, strlen(bullet_utf8));

您可以看到此字符here, for instance的UTF-8编码。

答案 1 :(得分:1)

  

如何将你从'Python'转换为C?

如果您使用c ++编译器构建它,并且编译器具有spec c ++ 0x或c ++ 11(您可以使用g++ -std=c++0x指定),则可以编写如下代码。

gtk_text_buffer_insert_at_cursor(textbuffer, u8"\u2022", -1);