V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
pp22
V2EX  ›  问与答

计算机上显示文字是不是必须要有对应的字体

  •  
  •   pp22 · 2020-12-20 20:39:24 +08:00 via Android · 1674 次点击
    这是一个创建于 1194 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如我在手机或电脑上打开一个日语或韩语网站,可以正常显示,是不是因为我的系统(比如简体中文 Windows 系统)里已经有对应日语和韩语的字体了,假如我把相关的字体删掉,是不是无论在什么软件上,不管是浏览器还是文本编辑器里都无法正常显示对应的文字了,纯好奇,了解的人解答一下呗
    第 1 条附言  ·  2020-12-21 17:14:02 +08:00
    看了大家的回复,我的理解大概是这样的,如果我可以在系统正常查看一个某种语言的纯文本文件,可以大概判定系统已经内置了对应语言的字体,因为中文字体也可以显示部分日语韩语文字。而网页是可以自带字体的,所以无法通过浏览网页准确判断。据我所知,英文这类字符数量不多的语言网页上完全可以自带字体,而中文字符数量太大,目前应该没有类似英文一样的网页字体,但是可以只把网页字体用到的字符做成网页字体,这样一来的话,即便系统没有中文字体,网页也可以通过自带字体正常显示用到的中文字符,这种情况应该很少吧。
    19 条回复    2020-12-23 17:10:07 +08:00
    natashahollyz
        1
    natashahollyz  
       2020-12-20 20:54:47 +08:00 via iPhone
    删除了还会有默认字体的。
    如果你的意思是全删掉(能不能删另说),那应该都是乱码 /小方块了
    SuperMild
        2
    SuperMild  
       2020-12-20 21:23:03 +08:00
    没错,很多年前我安装 linux 时就体验过,不装中文字体时,浏览器显示中文就是方框(现在的主流 linux 发行版可能会自动安装中文字体)。

    另外网页也能内嵌字体,只是比较少见(但也不罕见)。

    英文字体能不能彻底删除我就不知道了。
    Jirajine
        3
    Jirajine  
       2020-12-20 21:25:30 +08:00 via Android
    这样的字体很可能是通用的多语言字体 如 noto-cjk 。
    lxilu
        4
    lxilu  
       2020-12-20 23:21:00 +08:00 via iPhone
    那你这叫(当代)操作系统上
    muooOOO
        5
    muooOOO  
       2020-12-20 23:29:33 +08:00 via Android
    现在系统内是不是有个叫字符点阵的东西?就是一个大数组,每一个元素表示在一个方格内像素点的亮灭,从而显示一个字符。字符编码用来索引这个数组的元素
    raaaaaar
        6
    raaaaaar  
       2020-12-20 23:38:30 +08:00 via Android
    了解下字符编码和字符渲染
    systemcall
        7
    systemcall  
       2020-12-21 01:20:24 +08:00 via Android
    是的
    现在的 Unicode 字体,简中的字体显示日语和韩语一般是可以显示的,字形有些问题而且部分字不能正常显示而已,你反过来是一样的
    你要是想办法把中文、日语、汉语的字体全干掉,看到的都是框。如果再进一步把处理 Unicode 的东西干掉,还能用的话遇到中文就全是乱的
    systemcall
        8
    systemcall  
       2020-12-21 01:26:17 +08:00 via Android
    @muooOOO 现在是 truetype 和 opentype
    存储的是矢量的字形信息,部分字号还有 hinting,比如微软雅黑常用的那些字号,仔细看的话,特别是小的字号,经常会特地缺一些笔画,来提高显示效果
    点阵确实有,不过现在 Windows 连开机的时候都开始用 True Type 了,想不出来 Windows 哪里还在用点阵
    Windows 早期的版本不会带多少字体,对 Unicode 的支持也不好。但是现在这几年,自带的字体可以比较好的显示出来大部分语言,iOS 、安卓、macos 也是
    Goldilocks
        9
    Goldilocks  
       2020-12-21 09:16:05 +08:00 via Android
    如你所说,是这样。
    比如,英文版的 win10 就不能正常显示汉字,完全的一团糟
    baobao1270
        10
    baobao1270  
       2020-12-21 10:08:28 +08:00 via Android   ❤️ 1
    如果网页自带字体文件,则使用之
    如果没有,则使用系统字体
    如果系统没有该字体,则系统使用 Fallback 字体
    如果 Fallback 失败,则显示 Tofu
    pp22
        11
    pp22  
    OP
       2020-12-21 16:48:55 +08:00 via Android
    @Goldilocks 那岂不是不能浏览其他语言的网页了,比如日语,中文,我以为系统会内置很多语言的字体,以保证正常显示不同国家地区的文字
    pp22
        12
    pp22  
    OP
       2020-12-21 16:58:18 +08:00 via Android
    @baobao1270 你的回答简单明了,我还想知道的一点是,现在的系统比如 Windows 和安卓,是不是内置了很多不同语言的字体,以保证正常显示不同的语言文字,比如我是简体中文的 Windows 系统,不额外安装任何字体,也可以正常看日语之类的其他语言的网页或文档,但是上面有人说英文版系统无法正常显示中文,貌似我的猜想也不对,那看来不同的语言版本的 Windows 内置字体不一样,那美国的英文版 Windows 一般情况下是不是看不了中文日语的网页
    baobao1270
        13
    baobao1270  
       2020-12-21 20:43:39 +08:00
    @pp22 中文版和英文版的 Windows 包含的字体是不一样的。我记得有一个版本的中文版 Windows 10 比英文版大了 2GB,估计里面就有很多中文特有的字体等。因此,英文版 Windows 不装字体的话,是无法看中文、日语、韩语网页的。

    而中文、日文、韩文统称 CJK,一般这三种语言由于包含了大量汉字,因此会在做一套字体的时候同时做。比如微软雅黑,就包括 SC(简体中文)、TC(繁体中文)、JP(日本汉字、平假名、片假名)、KR(韩文) 等。因此,中文、日文的操作系统,都可以看中文、英文、日文、韩文的网页而无需安装字体。

    现在在 Windows 10 中添加字体也很方便,无需自己寻找字体,可以直接通过 Windows 更新的可选更新进行安装,有时 Windows 也会自动安装全部的 Unicode 字体。

    需要注意的是,同一操作系统上同一个字体的同一个字,在系统区域设置不同时,也会有所区别。
    如 `<span lang="zh-CN" style="font-family: Microsoft YaHei">取</span>` 和`<span lang="ja-JP" style="font-family: Microsoft YaHei">取</span>` 在同一系统、统一网页上的显示也是不同的。一般来说 zh-CN 的笔画有粗细、有变体、锋芒有力,而 ja-JP 则更加横平竖直、水桶圆润。
    baobao1270
        14
    baobao1270  
       2020-12-21 20:50:11 +08:00
    Append 中 [而中文字符数量太大,目前应该没有类似英文一样的网页字体] 本身不对。
    首先要知道的是,目前并没有任何一个字体把所有汉字都做出来,因为汉字本身没有字母表,古人又随便造字,有的字可能现在都不用了。最全的应该是把 Unicode 里的汉字全部做了出来。
    第一,有的网站真的把一个完整的中文字体嵌入网页。当然,这对带宽需求较大,也会拖慢网页加载速度。
    第二,有的中文字体不到 500KB,如丁卯点阵体,包括了 3000 个常用汉字的繁简体、日语、拉丁字母、希腊字母等,完全可以嵌入网页。
    pp22
        15
    pp22  
    OP
       2020-12-21 23:08:43 +08:00 via Android
    @baobao1270 学习了,你对这方面了解很深啊,是从事相关工作的吗
    baobao1270
        16
    baobao1270  
       2020-12-21 23:52:23 +08:00
    @pp22 并不是。我只是个学生,因为兴趣有些研究罢了。
    pp22
        17
    pp22  
    OP
       2020-12-22 16:55:24 +08:00 via Android
    @baobao1270 厉害了,V2 上牛人挺多啊,应该上大学吧
    baobao1270
        18
    baobao1270  
       2020-12-23 00:05:57 +08:00
    @pp22 不敢当不敢当,本科而已。这些知识也没啥用,权当消遣时间研究的。
    pp22
        19
    pp22  
    OP
       2020-12-23 17:10:07 +08:00 via Android
    @baobao1270 我来问这个问题也是满足自己好奇心,要说用处好像是没什么用处,不过肯花时间了解这些的多少有些探索精神,挺值得肯定的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3058 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:34 · PVG 08:34 · LAX 17:34 · JFK 20:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.