我正在用 GTK for Windows 编写日志查看器。我使用 GtkTreeView 小部件来显示日志记录。它包含 3 列:日期和时间、事件源、事件文本。出于某种原因,在事件时间列中出现了奇怪的符号:
我使用调试器监视窗口来查看字符串值,它不包含任何可能导致这种奇怪符号出现的额外字符。
这种树视图行为的可能原因是什么?
我正在用 GTK for Windows 编写日志查看器。我使用 GtkTreeView 小部件来显示日志记录。它包含 3 列:日期和时间、事件源、事件文本。出于某种原因,在事件时间列中出现了奇怪的符号:
我使用调试器监视窗口来查看字符串值,它不包含任何可能导致这种奇怪符号出现的额外字符。
这种树视图行为的可能原因是什么?
Gtk+-2.0 小部件中使用的所有文本都需要采用 UTF8 编码。纯 ASCII 中的文本自动成为有效的 UTF8,但只要您有纯 ASCII 中不存在的特殊字符(通常是英语中未使用的字符字母表),它们需要采用 UTF8 编码。否则你可能会得到你现在得到的东西。
这很奇怪,但如果你不使用 glib 库函数,gtk 就会出现这个问题。您需要使用此函数处理所有字符串。这可能是渲染问题。
对于您使用的路径g_path_get_basename(path);
对于您使用的目录g_path_get_dirname (path);
对于日期和时间,请使用此文档中的一些gtk 日期和时间
所以它可以在树视图中正确显示