centos 系统下中文显示,我一般都是看 locale 看下 xx_xx.utf-8 的情况下,基本中文就可以在终端正常显示 但是当我搜了下 linux 中文乱码解决之类的问题,好多教程都是要安装中文字体,安装 chinese-support 最后一定要设置 zh_cn.utf-8 等
UTF-8 是编码方式,en_US.UTF-8 和 zh_CN.UTF-8 是语言环境,也就是字符集。
en_US.UTF-8 和 zh_CN.UTF-8 包含的字符数量是基本上一样的,大概是七万个汉字,编码都是 UTF-8 编码,字符集是 Unicode 。
特来请教一下,
1-当系统中设置为 en_us.utf-8 和 zh_cn.utf-8 的时候,除了系统的各种显示会从英文改为中文以外,以及一些时间格式等变化意外,对于中文显示有什么本质的区别吗?
2-本机上跑的服务,比如 web 服务,返回的中文只要编码正确,和本机安装的字体没关系吧?
谢谢指点
1
libook 2023-12-13 15:49:35 +08:00
你理解的基本是正确的。
不过字体是可能有一定影响的,一方面系统界面会根据配置的字体显示,如果所配置的字体没有中文字符就无法显示中文(比如显示成方框或编码堆叠的图标);另一方面网页也会在 CSS 中指定字体,如果系统没有装字体就会按照声明的顺序找备用字体,如果所有字体都没有找到,就可能会使用本地默认的字体,当这个字体不包含中文字符也就无法显示中文字符。 |
3
libook 364 天前
@coolloves #2 网站是有设计兼容性的,比如预期绝大多数用户使用 windows 系统和 macos 系统,也会预期使用这些系统自带的那些字体,实在有特殊字体需求的会提供 web 格式的字体自动下载,但并不是 css 声明了字体就一定会自动下载,只有明确声明了下载地址的才会自动下载,只声明字体名称的只会在系统中找,找不到就使用系统默认字体显示,也就是我上面回复说的逻辑。
Linux 系统通常不在设计兼容性范围内,因为用户太少了,而且不同发行版预装字体也不同,部分较为清爽的发行版安装是完全不预装任何支持中文的字体的,需要用户自己手动安装。 也就是说对于部分 Linux 发行版来说,初装之后完全无法显示网页上的中文是完全有可能发生的,需要你设置 UTF8 编码以及安装包含中文字符的字体。 |