0
我努力嘗試在我的Gtk/C++應用程序中設置wchar_t數組。由於某些未知的原因,Gtk方法沒有支持wchar_t數組但只支持gchar的重載形式。如何在包含寬字符的gtk中設置文本?
我讀過幾篇文章,讓我想知道它可能是一個可變寬度編碼問題,它是以常規UTF-8設置的。我試着這樣做:
std::wstring propertiesText;
/*
String Manipulation...
*/
gtk_label_set_text((GtkLabel*)_propertiesLabel, propertiesText.c_str());
正如我所說的編譯器抱怨wchar_t的不受此方法的支持。
如果你可以以任何形式清除我的問題,甚至可以解釋一些關於這些可變寬度編碼/寬字符關係的內容。
要做到後者,你可以使用[iconv](http://pubs.opengroup.org/onlinepubs/009695399/basedefs/iconv.h.html)(它包含在glibc中,也可作爲[單獨的庫](http://www.gnu.org/software/libiconv/))。在Windows上,您也可以使用[WideCharToMultiByte](http://stackoverflow.com/a/6864228/249167)。 –
感謝您的建議Basile。 我用一個簡單的解決方案解決了這個問題, g_utf8_strlen(const gchar,gssize max); 它計算utf8格式的字符串。 希望這可以爲下一個絆倒這個問題的人節省時間。 – dcguim