如果在应用程序中发现g_message(...)无法输出中文 而printf确能正常显示中文,那么可以怀疑是locale的问题。
在GLIB的参考文档里面有说到,目录地址是“GLib Reference Manual ->Running GLib Application -> Locale”中有提到。
解决方法很简单在main程序先调用locale.h 的setlocale(LC_ALL,"");即可。
#include <stdio.h>
#include <locale.h>
#include <glib.h>
#include <gtk/gtk.h>
int
main (int argc, char *argv[])
{
setlocale (LC_ALL, "");/*将程序的locale设置成与console的一致*/
printf("你好!");
g_printf("你好!");
g_message("你好!");
return 0;
}