jun*_*ist 13 linux fonts gnome locale arch-linux
我最近从 Ubuntu 切换到 Arch Linux,为了简化切换,我安装了 Ubuntu 使用的 GTK 主题,并在整个系统中切换到 Ubuntu 字体系列。但是,GNOME 界面中的时钟存在一个小缺陷,所有冒号:都被替换为三分号?,这让我很烦恼。
这可能是由不正确设置的区域设置引起的,或者这可能是我需要在 GNOME 上提交的错误?
编辑 1:我从ttf-ubuntu-font-familyArch 存储库中安装了 Ubuntu 字体系列。
con*_*tti 16
嗯,这个问题对我来说很有趣,所以我做了一些挖掘......
这是 gnome-clocks 源代码。来自world-item.vala:
public string time_label {
owned get {
return Utils.WallClock.get_default ().format_time (date_time);
}
}
Run Code Online (Sandbox Code Playgroud)
好的。从Utils.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;
}
Run Code Online (Sandbox Code Playgroud)
对我个人来说似乎很奇怪,但好吧,:被"\xE2\x80\x8E\xE2\x88\xB6".
我在我的系统上运行了这个:$ echo -e "\xE2\x80\x8E\xE2\x88\xB6"并得到:?
在你的身上运行它,看看你得到了什么。
根据该网站,上述序列也转换为:. 但什么是:?从网站上复制它并粘贴到这里。结果:
U+200E : LEFT-TO-RIGHT MARK [LRM]
U+2236 : RATIO
Run Code Online (Sandbox Code Playgroud)
现在由您来确定您的字体是否打印RATIO为三分号,或者您的语言环境是否混乱并且 UTF-8 处理不正确。我现在不在 GNOME 上,但我认为您可以进入U+2236全局 GNOME 搜索来查找并复制它。如果它导致三分号,那么我建议更改您的字体并重试,如果它导致冒号,那么它肯定是您的字体,如果不是很可能是您的语言环境/UTF-8 设置。
编辑:在任何文本框中(例如搜索超级用户)按CTRL+ SHIFT+ u,然后输入2236并按enter。如果它是三分号,我会责怪你的字体。
Edit2:我在网上找到了一个 ubuntu 字体测试器,并在上面做了上面提到的组合键。它对:我来说是一个正常的冒号。我反复检查,这是该RATIO字符...
你能帮我一个忙并运行以下命令:fc-match "?"- 确保复制它,因为冒号(三分号?)是RATIO字符。如果它输出正确的(ubuntu)字体,那么要么是那个 ubuntu 字体测试网站是错误的,要么是醉了我的想法......
Edit3:另一种检查它是否是字体的简单方法:如果上述echo命令的结果为您提供三分号,请尝试更改终端字体并查看它是否变成冒号。如果您在第一次尝试时确实得到了冒号,请将终端的字体更改为与系统字体相同,看看它是否变成了三分号...
Edit4:在此处使用 u+2236 字符尝试 Ubuntu 字体表明,Ubuntu 字体确实甚至不包含比率符号,因此无论您的系统退回到哪种字体都会导致此问题。
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |