Windows 英语为显示语言 中文字体显示问题

2022-12-09 16:53:18 +08:00
 mijazz

虽然这个问题好像是老生常谈了...但是我依然没有找到合适的解决方法。

网上很多修改注册表 fontlink 的方法都没效果。不知道 v2er 们用的什么方法处理这个显示问题。

英语下的 win11 ,特别是 edge 浏览器标签页里面那些中文字体...真的辣眼睛。

noMeiryoUI ? MacType ?麻烦各位给点建议

6062 次点击
所在节点    问与答
20 条回复
xtreme1
2022-12-09 17:13:00 +08:00
mijazz
2022-12-09 17:21:02 +08:00
@xtreme1 试过一下,个别软件还是会乱。

平时用 manjaro ,就是为了一些 win 平台的软件才用 win ,也是很难受了
doommm
2022-12-09 17:27:01 +08:00
感觉 win11 下已经好很多了,之前在 win10 下用英文语言,那真叫一个没法看。
MacType 我是一直都开,但是没有研究过配置,不知道能不能把英文语言下中文字体的渲染顺序改一改。
之前用 win10 的时候我折腾过一晚上,注册表改来改去也没什么效果,就放弃了
RobertLyu
2022-12-09 17:29:04 +08:00
应该还是科技发展水平的历史遗留问题。好多汉字是中日韩共用,因为日本率先进入数码时代,微软也就优先本地化软件到日本语了。实在不行就破坏性地把日文字体替换成中文字体吧。
mijazz
2022-12-09 17:43:17 +08:00
@doommm 今天刚刚更新到 win11 ,就想起来 mactype 。 看了一下更新日期,难道是我打开方式不对?好像很久没有更新了。请问 mactype 跟 win11 的兼容性 ok 嘛
doommm
2022-12-09 17:51:20 +08:00
@mijazz 我用着还 ok ,没有遇到什么崩溃问题,效果和之前 win10 也看不出区别。不过这个东西比较主观,还是得自己装上去看看才行
lonely701
2022-12-09 18:46:19 +08:00
难道不是进入 administrative language/Region setting? 10 和 11 是一样的吧。然后取消勾选 beta utf-8 什么的那个选项,在下拉菜单里选择 Chinese Simplified ,然后重启就可以了。

Windows 10 上我很确定这可以解决,难道 11 连这个设置都给砍了??
Projection
2022-12-09 18:57:11 +08:00
原因是英文版系统中,日语字体的优先级比较高,部分汉字会先使用日文字体,然后剩下的汉字使用中文字体,导致汉字会用多个字体渲染,非常糟糕。

可以尝试这么做,在切换到英文之前,先备份 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink ,切换到英文后,再将其还原。

不过这样做之后,使用的西文字体和英文原版不一致。想调整这个行为的话,还需要自己调整一下字体回退的顺序。
shinession
2022-12-09 20:03:56 +08:00
@mijazz 我是 win11+mactype, 没有问题, mactype 用 mactry 兼容模式
xxx027
2022-12-09 20:23:25 +08:00
我是英文 win10 ,如果 edge 设置界面语言为简体中文则标签页的字体为微软雅黑,如果界面不是简体中文(随便什么语言,繁中也行)则标签页的字体是用的日文字体。

自己找了很多资料,最终确定这是 edge 硬编码进去的,改注册表还是其他什么方法统统不起作用。毕竟 edge 是源自 chromium 的,你试一下其他 chromium 壳的浏览器都不会有这种情况,明显是针对简中做的调整。

这样的做法给我的感觉就是,你是简体中文用户就老老实实把界面调成简体中文,反正你只看得懂简体中文,就不另外优化了。非简体中文用户也没访问简中网站的需求。

而且,一旦界面调成简中,新标签页就会出现根本关不掉的广告,之后换其他语言也关不掉。

总结,简中用户只配吃微软拉的屎。

其他界面的简中显示就如楼上所说 utf-8 设置成简中即可,不用动注册表。
hack2015
2022-12-09 21:31:02 +08:00
软件里的显示中文字体更糟糕,和马赛克一样
hua123s
2022-12-09 21:57:56 +08:00
打开 **Settings** -> **Time & language** -> **Language & Region** -> **Administrative language settings** -> **Administrative** Tab -> Change system locale -> Current system locale **Chinese (Simplified, China)**
worldGM
2022-12-09 22:11:40 +08:00
@xxx027 同样的情况,简中没问题,英文状态标签页是日文字符。一直找不到办法去掉,在系统里面修改同样无效。同意简中只配吃微软的 x 。
mijazz
2022-12-10 01:47:37 +08:00
@xxx027 #10 破案了,基本上确定是 edge 对简中用户的特别"优化"

还好不是 edge 的重度用户,要不然那个标签页我真的会窒息的...一边是日文字体配简中内容,一边是一堆内容广告推荐

别的地方用楼上各位的方法设置过后基本就解决了,就 edge 这么奇葩
mijazz
2022-12-10 01:50:40 +08:00
其实还有一个奇怪的问题。作为终端软件,Windows Terminal 为什么没有 font fallback 啊...找来找去都说他是依照系统的 fallback 。

那些个 CJK 字符在我设置的 JetbrainsMono Nerd Font 之间真的丑出天际......
mmddisa
2023-06-14 21:24:32 +08:00
不光是 edge ,微软自家的 word 也一样,只要系统语言是英文,则状态栏和导航栏里的中文全变日本汉字和中文的杂糅,以上解决方法都试过了,皆无效。
c1462066778
2023-09-24 14:37:37 +08:00
@xxx027 2023-9-24 14:27:52 ,Windows 11 22H2 English ( not International )。测试了一下 Chrome 、Edge 、Chromium 、Firefox 。只有 Firefox 没有使用日文字体,其他几个浏览器都是日文字体。但是 electron 编写的软件不会出这个问题

https://fastly.jsdelivr.net/gh/james-curtis/blog-img@img/img/16955374285321695537427994.png
c1462066778
2023-09-24 14:49:43 +08:00
> 解决: https://zhuanlan.zhihu.com/p/502139239

1. 备份注册表 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
2. 删除 Microsoft JhengHei (繁中)开头的 3 个键、Malgun (韩文)开头的 3 个键和 Yu Gothic (日文) 开头的 4 个键

3. 重启

注意:本方法会导致部分繁体中文和日、韩文显示异常。
xxx027
2023-09-29 00:11:33 +08:00
@c1462066778 就 electron 而言的话,也有这种问题的,我在非简中的 win 下用 electron 用到已经不想折腾这鬼问题了,能用英文就只用英文。

你给的解决办法的确是对的,因为本质就是 win 的 CJK 字体回落的问题,我在这个帖子里 /t/918947 有提到,其实不需要删除韩文,因为韩文的回落顺序是最后的(可能有记错,最好自己实践,不删除韩文的键看下效果是否一样),在前面的依次是日文、繁中、简中。

当系统语言设置为简中时,简中会优先选择,其他语言就是上面的这个顺序。electron 会调用微软雅黑是因为设置了使用简中作为显示语言,有些 electron 程序是没这选项的(程序员偷懒或没这意识),那就是默认跟随系统语言,所以如果不是简中的系统用这种 electron 程序,遇到简中字体就会眼瞎。不过我不知道 win11 和更新点的 electron 是否已经有了很好的解决办法,自己也没时间去做测试。

火狐对于 CJK 字体有自己的解决办法的,因为它可以自己设置字体回落顺序或者是对应的语言使用对应的字体的,这点比 chromium 要好,chromium 的方法就是简单粗暴调用系统设置(非常原生)。edge 则是更进一步,不再赘述。你可以再试一下 vivaldi ,不管是什么系统语言,都是默认用微软雅黑,vivaldi 是比较开放的,它的界面是可以高度自定义的,你去看它与界面字体相关的代码就知道是怎么回事了(就在一个 CSS 样式文件里)。

其实最简单的办法,就是改 FontLink\SystemLink 下的 Segoe UI 的值。你把系统语言设成非简中和简中,你会发现 Segoe UI 的值是不一样的,所以调整系统语言会影响回落顺序的根本原因就是修改了 Segoe UI 的值。

在 Segoe UI 设置了简中优先的情况下,如果无论是简中还是非简中,还是默认日文优先的话,那就是不是跟随 FontLink\SystemLink 来做字体回落的,软件窗体部分的字体可能是通过 Desktop\WindowMetrics 这下面的键值来设置的,这个就可以通过软件 noMeiryoUI 来设置。这个也可能是在调整系统语言时会一并做出的更改之一,没有测试,仅猜测。

除此之外的,如果上述两个步骤都改成了微软雅黑,但软件还是日文优先,那就说明是软件内部有自己的字体回落,这时候就只能删掉字体来解决,也就是你所写的解决方案。例子就是 edge 的标签页,日文优先,定义在了它的界面的 CSS 文件里,但因为没开放修改,我猜是 resources.pak 这文件里有,把它解开然后改里面的某个 CSS 文件,我看到这文件的有关字段如下:

s.Cyrillic="Segoe UI Web (Cyrillic)"
c.ChineseSimplified="'Microsoft Yahei UI', Verdana, Simsun",c.ChineseTraditional="'Microsoft Jhenghei UI'
c.Japanese="'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka",c.Korean="'Malgun Gothic', Gulim"

把 "Segoe UI Web (Cyrillic)" 替换成 "Segoe UI" 可能就能解决这个问题了,也可以 "Segoe UI, Microsoft Yahei UI"
只是猜测

不过一般而言,很少有软件会自己内部定义字体回落的,都是跟随系统设置。所以改 FontLink\SystemLink 能解决大部分问题。
kidzgy
194 天前
@xxx027 #19 请教一下,像 https://www.v2ex.com/t/966085 提到的问题,通过 删除 Microsoft JhengHei (繁中)开头的 3 个键、Malgun (韩文)开头的 3 个键和 Yu Gothic (日文) 开头的 4 个键确实可以解决问题。

但是有没有办法不删除这几个键值也能解决问题呢?我尝试将 FontLink\SystemLink 下的主要字体(比如 SimSun 、Microsoft YaHei 、Microsoft YaHei UI 等)几个键值的 Malgun 、Yu Gothic 、JhengHei 全部删除,但是都没解决问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/901385

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX