修复英文版Windows下糟糕的中文字体显示
windows的字体渲染一直是很成问题,之前用1080p屏幕的时候,感觉还没有那么明显,最近换到了2k,注意到很多字体显示不完美的情况。
比如,微软雅黑在字号小的情况下有的字会糊,系统的Segoe西文字体我不喜欢。还有最大的一个问题,就是在各种地方——比如控制台cmd——英文显示正确而中文会出现宋体(中易宋体)等各种妖魔鬼怪,或者干脆显示□,以及英文版系统环境下的中文出现日文字符,导致出现中文字有高低不一的情况。
解决当然也很简单,换mac os就行了,或者好像各种Linux也没有这种问题。
但是不用Windows是不可能的,苹果也整不起,只能自己动手来调整。
于是在网上搜索到一篇无比详细的内容,
下面的内容即是对这篇的简单总结(拷贝),以水一篇于我的博客上。
首先是操作前,有中文的地方大概这样(图也是偷的上面那个链接里的)
甚至桌面等各种地方,文件名里的中文都是这样。
想修复这个问题,要知道一个概念,就是 fontlink,就是把当前字体里没有的字符映射到其他的字体里。比如Segoe UI里实际是只有英文字母的,如图
但是做软件的时候,比如是一个老外来做个客户端,把字体设成Segoe UI,那Segoe UI里只有英文字型,他肯定不会来考虑,也整不明白各种别的语言要用什么字体(比如简中和繁中经常用的字体都没法一样)。所以这个就让Windows来解决,系统把Segoe UI里没有的字(比如中文)用其他字体显示出来。具体选择用哪个字体就是fontlink来决定。
fontlink在注册表里位于
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
可以看到Segoe UI的fontlink,第一个字体是Tahoma,还是个西文字体,第二个Meiryo则是日文字体,这就导致日文里有的汉字会用这个显示,而没有的则继续往下找,用MS UI Gothic(日文),JhengHei UI(繁体中文)及MSYH(雅黑,简体中文)显示。这就是为什么桌面等用Seoge UI做字体的地方中文显示出问题。
同理,想修改编辑器、IDE、控制台之类地方的中文字体(因为这些地方用的英文字体,比如Consolas之类的也是不含中文字符的),只要修改注册表对应字体条目的值就好了。
已知问题:
VLC也不知道英文用的什么字体,中文显示这个鬼样子,简体和繁体一样的能显示,简体显示就成宋体了
(改用mpc-be了,再见了您)
todo: chrome字体设置