答案1
嗯,这个问题听起来很有趣,所以我做了一些调查......
这里是 gnome-clocks 源代码。来自世界物品.vala:
public string time_label {
owned get {
return Utils.WallClock.get_default ().format_time (date_time);
}
}
好的。来自实用程序.vala:
public string format_time (GLib.DateTime date_time) {
string time = date_time.format (format == Format.TWELVE ? "%I:%M %p" : "%H:%M");
// Replace ":" with ratio, space with thin-space, and prepend LTR marker
// to force direction. Replacement is done afterward because date_time.format
// may fail with utf8 chars in some locales
time = time.replace (":", "\xE2\x80\x8E\xE2\x88\xB6");
if (format == Format.TWELVE) {
time = time.replace (" ", "\xE2\x80\x89");
}
return time;
}
对我个人来说这似乎很奇怪,但是好吧,:
被替换了"\xE2\x80\x8E\xE2\x88\xB6"
。
我在我的系统上运行了这个:$ echo -e "\xE2\x80\x8E\xE2\x88\xB6"
并得到:∶
在你的电脑上运行它,看看你得到了什么。
根据这网站,上面的序列也转换为:
。但是什么:
?从网站复制并粘贴这里。 结果:
U+200E : LEFT-TO-RIGHT MARK [LRM]
U+2236 : RATIO
现在,您需要确定您的字体是否打印RATIO
为三冒号,或者您的语言环境是否混乱,UTF-8 是否处理不正确。我现在不在 GNOME 上,但我认为您可以U+2236
在全局 GNOME 搜索中输入以查找并复制它。如果结果是三冒号,那么我建议您更改字体并重试,如果结果是冒号,那么肯定是您的字体,如果不是,则很可能是您的语言环境/UTF-8 设置。
编辑:在任何文本框中(例如在超级用户上搜索)按CTRL+ SHIFT+ u,然后输入2236
并按enter。如果是三冒号,我会责怪你的字体。
编辑2:我发现Ubuntu 字体测试器在线并执行了上述组合键。结果:
对我来说是正常的冒号。我仔细检查了一下,它是人物RATIO
...
您能帮我一个忙并运行以下命令吗:fc-match "∶"
- 确保复制它作为冒号(三冒号?)是RATIO
字符。如果它输出正确的(ubuntu)字体,那么要么是 ubuntu 字体测试网站错了,要么是醉醺醺的我没主意了……
编辑 3:检查是否是字体的另一种简单方法:如果上述echo
命令的结果显示三冒号,请尝试更改终端字体,看看它是否变成冒号。如果第一次尝试时确实显示冒号,请将终端的字体更改为与系统字体相同,看看它是否变成三冒号……
Edit4:尝试 Ubuntu 字体这里使用 u+2236 字符表明 Ubuntu 字体确实不包含比率符号,因此无论您的系统回退到哪种字体都会导致此问题。