[提问] 有没有人熟悉 XEmacs 21.4.24 的中文字体指定?
2022-9-6
系统:Debian 10.12, XEmacs 21.4.24
为了能正常显示、输入 gb2312 和 utf-8 中文文字编码,我添加了一个全局设置文件。
/etc/xemacs21/site-start.d/86utf8-zh-cn.el
这样, fcitx4 输入法,也可以正常在 XEmacs 中输入中文。而且保存后,
用 file 检测,也能确保存盘文件的编码是 utf-8, 而不会出现“保存后,打开却是乱码”的问题。
已知问题:
在 utf-8 编码的文件中(如输入“千字文”的内容),会出现一个很奇怪的问题:
律吕调(阳)的“阳”字,无法正常显示。
报错信息:
---
(1) (font/warning) Unable to instantiate font for face default, charset japanese-jisx0212
----
看起来,应该是 utf-8 对应的中文字体,用的是“日文字体”文件,而不是中文字体文件。
而 gb2312 格式,则可以正常显示。
另外,“你”我他的“你”字,也会无法正常显示。见图。
注意细节:仔细查看截图上、下两部分的“作者”两字两边的括号,明显是不一样的。
很明显可以看出:
utf-8 和 gb2312, 调用的不是同一款中文字体文件。
/etc/xemacs21/site-start.d/86utf8-zh-cn.el
内容如下:
--------
;;; original filename: 86utf8-zh-cn.el
;;; coding: utf-8
;;; 2022-09-05, by Careone
;;; ---------------------------------------------
;;; for XEmacs 21.4.24
;;; test OS: (Linux) Debian 10.12
;;; 1. 指定中文环境
;;; 注意:下面这行指令,请尽可能放在文件内容的最前面!
;;; 如果放在文件最后,那么 utf-8 编码的中文内容,仍然有很大可能会乱码!
(setup-chinese-gb-environment)
;
;;; 千万不要使用下面的这条指令!
;;; (Linux XEmacs 21.4.24 下, 打开中文文件会乱码!)
;;;(set-language-environment "Chinese-GB")
;;; ---------------------------------------
;;; 10. 启用 utf-8 支持 (默认不支持 utf-8)
(require 'un-define)
(set-coding-priority-list '(utf-8))
(set-coding-category-system 'utf-8 'utf-8)
;;; 60. buffer 缓冲区
;; optional: gb2312, chinese-euc, big5, utf-16-le, utf-8
(set-buffer-file-coding-system 'utf-8)
;(set-buffer-file-coding-system 'gb2312)
;
(set-buffer-process-coding-system 'utf-8)
(set-buffer-file-coding-system-for-read 'utf-8)
;;; 20. pathname 文件/目录路径名
;; optional: gb2312, chinese-euc, big5, utf-16-le, utf-8
(set-pathname-coding-system 'utf-8))
;;; 30. file 文件编码
;; optional: gb2312, chinese-euc, big5, utf-16-le, utf-8
(set-file-coding-system 'utf-8)
;;; 40. 文件内容带有 中文内容 时的编码识别顺序 (可以多组数据并存)
;;; 注意:Linux XEmacs 24.1.24 暂不支持 gb18030 中文大字符集编码!
(prefer-coding-system 'gb2312) ;for Chinese, China
;(prefer-coding-system 'big5) ;for Chinese, Taiwan
;
;(prefer-coding-system 'utf-16-le) ;for Windows, Unicode (中文还是乱码,待调试)
(prefer-coding-system 'utf-8)
;
;;; 50. terminal 终端
;; optional: gb2312, chinese-euc, big5, utf-16-le, utf-8
(set-terminal-coding-system 'utf-8)
;;; 70. keyboard 键盘输入
;; optional: gb2312, chinese-euc, big5, utf-16-le, utf-8
(set-keyboard-coding-system 'utf-8)
;;; ----------------------------------
;;; 100. [bugful and Disabled 有严重缺陷: 菜单文字仍为乱码。当前为“禁用”状态]
;;; 加载翻译过的主菜单文件 menubar-item.el 和其它翻译文件
;
;(load-library 'menubar-item)
;(load-library "menubar-items")
--------
--
FROM 120.227.80.*