debian中输入偏旁部首,候选词会显示方块

系统字体配置、中文显示和输入法问题
头像
astolia
论坛版主
帖子: 6499
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#31

帖子 astolia » 2022-02-24 16:37

yq-ysy 写了: 2022-02-24 14:00 我不知道应该如何修改“某个字体名称与字体匹配列表”。fc-match 命令只能查看,不能修改?
去修改fontconfig的配置文件。可以把金步国的两篇当成是起点
http://www.jinbuguo.com/gui/linux_fontconfig.html
http://www.jinbuguo.com/gui/fonts.conf.html
当然,这属于你口中“需要编程改代码、需要编译、或者需要先学习更深层次的东西——这就太难了”的东西
yq-ysy 写了: 2022-02-24 14:00 我在职业学校教Blender,也遇到类似的事情,有很喜欢这门课的学生,但他在三维图形方面的想像力、接受能力比较差,讲了几次都不明白。
所以这时候,就需要耐心和方法,换个角度讲解,分解成更细的步骤一步一步讲解,这样才能让他一步一步弄明白。
当然,老师的耐心也是有限度的,对于实在不开窍的这学生,受不了了,于是放弃,这也可以理解。——急性子遇到慢郎中,不凑巧而已。
我在9楼给出了怎么查某个字体名称的实际候选字体列表的方法,在8楼给出了怎么判断一个字体里包不包含某种字符(编码)的方法。只要把两者一结合,马上就能明白12楼里图的成因。但看起来你们两个都没怎么明白。不过我又不是老师,又不收你们学费,弄不明白关我什么事呢
yq-ysy 写了: 2022-02-24 10:50 与我的“单手笔顺输入法编码”无关,我的编码严格遵守GB国标,没问题。
至于这个,自行参考 https://www.zhihu.com/question/43279322 ... 1608455615 中户籍管理部门一段吧。
头像
yq-ysy
论坛版主
帖子: 4463
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#32

帖子 yq-ysy » 2022-02-24 17:18

astolia 写了: 2022-02-24 16:37 去修改fontconfig的配置文件。可以把金步国的两篇当成是起点
http://www.jinbuguo.com/gui/linux_fontconfig.html
http://www.jinbuguo.com/gui/fonts.conf.html
当然,这属于你口中“需要编程改代码、需要编译、或者需要先学习更深层次的东西——这就太难了”的东西

我在9楼给出了怎么查某个字体名称的实际候选字体列表的方法,在8楼给出了怎么判断一个字体里包不包含某种字符(编码)的方法。只要把两者一结合,马上就能明白12楼里图的成因。但看起来你们两个都没怎么明白。不过我又不是老师,又不收你们学费,弄不明白关我什么事呢
谢谢指点。再找时间细细看,慢慢消化。现在准备开学,事情比较多。
但对于“单手笔顺输入法”来说,也不可能要求每个安装这个输入法的用户,都手工修改系统默认的候选字体列表。

astolia 写了: 2022-02-24 16:37
yq-ysy 写了: 2022-02-24 10:50 与我的“单手笔顺输入法编码”无关,我的编码严格遵守GB国标,没问题。
至于这个,自行参考 https://www.zhihu.com/question/43279322 ... 1608455615 中户籍管理部门一段吧。
以【䶮】字最为典型,有用U+E863小䶮的,也有用U+4DAE大䶮的;
谢谢指点。看到这个,让我想到我的一处失误:6年前刚开始做码表时,我在网上查找GB18030的编码表,然后复制粘贴下载这份资料——
——虽然在表格里,每个字都标明了这个字的GB18030编码和Unicode编码,但它当时在网站显示的这个字本身,却可能并不对应所标示的编码。
也就是说,我得到了正确的编码数据,却没得到正确的汉字——我却一直以为,复制下来的汉字也肯定是正确的……

那么接下来,我得研究写个Python脚本,对我的单字码表3万汉字进行逐一校验,查看每个汉字是否与正确的编码数据相匹配。
如果不匹配,去哪里找这个“正确的汉字”又成了问题,也许还必须借用 Windows 的字体文件。
嗯,工作量也蛮多的。
Unicode一般为2-3年更新一次,但GB18030、通用汉字规范表等,却常常十几年未更新。
在GB18030-2000中提到52个双码字,一个是临时码(PUA U+E8xx)一个是扩展A的码。
这对于个人来说,就没办法了。要遵守GB国标,临时码也得用啊,所以出现"以前显示正常,现在变成了英文乱码"的情况。
如果有同一形状的另一字,那还可以替换使用,否则这个字就只能留空白了,等于不用这个字了。或者等GB国标升级改正了,再改回来。
头像
astolia
论坛版主
帖子: 6499
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#33

帖子 astolia » 2022-02-25 10:41

yq-ysy 写了: 2022-02-24 17:18 这对于个人来说,就没办法了。要遵守GB国标,临时码也得用啊,所以出现"以前显示正常,现在变成了英文乱码"的情况。
如果有同一形状的另一字,那还可以替换使用,否则这个字就只能留空白了,等于不用这个字了。或者等GB国标升级改正了,再改回来。
我建议是把PUA码的字单独提出来弄成一个码表,就跟你那些扩展词库一样。注明需要特定的字体才能正确显示,win版默认启用,linux版默认禁用。有能力的话还可以提供一个fontconfig配置,优先使用那些字体的PUA区段,用户直接复制到特定目录就行。
头像
yq-ysy
论坛版主
帖子: 4463
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#34

帖子 yq-ysy » 2022-02-25 11:07

astolia 写了: 2022-02-25 10:41
yq-ysy 写了: 2022-02-24 17:18 这对于个人来说,就没办法了。要遵守GB国标,临时码也得用啊,所以出现"以前显示正常,现在变成了英文乱码"的情况。
如果有同一形状的另一字,那还可以替换使用,否则这个字就只能留空白了,等于不用这个字了。或者等GB国标升级改正了,再改回来。
我建议是把PUA码的字单独提出来弄成一个码表,就跟你那些扩展词库一样。注明需要特定的字体才能正确显示,win版默认启用,linux版默认禁用。
有能力的话还可以提供一个fontconfig配置,优先使用那些字体的PUA区段,用户直接复制到特定目录就行。
OK,这个办法可行,分开两个单字码表就行了。
有空再研究fontconfig。
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#35

帖子 驿窗project » 2022-02-25 12:46

yq-ysy 写了: 2022-02-24 17:18 那么接下来,我得研究写个Python脚本,对我的单字码表3万汉字进行逐一校验,查看每个汉字是否与正确的编码数据相匹配。
如果不匹配,去哪里找这个“正确的汉字”又成了问题,也许还必须借用 Windows 的字体文件。
嗯,工作量也蛮多的。
这个工作是什么内容,能不能再说具体一点,是汉字与utf码的对应么?

我昨晚加了个班,最后找到天珩字库,把天珩字库的四个字库文件放到我的~/.fonts目录后,然后把天珩字库的TH-Tshyn-P0 changgui设置为ibus候选词后,onehand输入法不再显示方块,我试了大概一分钟,一个方块都没看到。

另外,再打开onehand附带的one_hand.text.dict.yaml文件后,也没再看到有任何方块显示。

(除了天珩字库的四个字库文件外,我的系统没有任何其它额外安装的字体,全部是系统自带)

这样的话,是不是用天珩字库可以临时解决问题?

ps:
有一点比较麻烦,就是天珩字库中的字形版权是商业版权,归属各个字体公司,无法直接商用。
天珩字库下载地址:http://cheonhyeong.com/Simplified/download.html
选择7zip(手动安装)版。

ps:
fontconfig肯定是要研究的,astolia已经给了我们这么多说明。不过我这里它的权重有点靠后,在《Linux入门指南》里,fontconfig是放在主目录的最后一章,权重仅高于附录。

我想想怎么调整权重~
头像
yq-ysy
论坛版主
帖子: 4463
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: debian中输入偏旁部首,候选词会显示方块

#36

帖子 yq-ysy » 2022-02-25 13:53

驿窗project 写了: 2022-02-25 12:46
yq-ysy 写了: 2022-02-24 17:18 那么接下来,我得研究写个Python脚本,对我的单字码表3万汉字进行逐一校验,查看每个汉字是否与正确的编码数据相匹配。
如果不匹配,去哪里找这个“正确的汉字”又成了问题,也许还必须借用 Windows 的字体文件。
嗯,工作量也蛮多的。
这个工作是什么内容,能不能再说具体一点,是汉字与utf码的对应么?

我昨晚加了个班,最后找到天珩字库,把天珩字库的四个字库文件放到我的~/.fonts目录后,然后把天珩字库的TH-Tshyn-P0 changgui设置为ibus候选词后,onehand输入法不再显示方块,我试了大概一分钟,一个方块都没看到。
另外,再打开onehand附带的one_hand.text.dict.yaml文件后,也没再看到有任何方块显示。
能够只用一个字体文件就解决显示问题,那当然很好。
不过,如之前帖子所说,能显示某个字,不等于这个字就是正确的的字。
所以,我设想中的Python脚本,就是读取码表里的每一个字,然后提取它的 Unicode 码,与我记录在Calc电子表格的编码作比较,
如果一致,那就是符合GB国家标准的,如果不一致,那就有可能是日韩或港澳台的用字,我就要在码表里改为正确GB国标汉字。
然后所有的词汇码表都要更新,重新生成一遍,以确保不存在错误的汉字。

此外,还要把扩展A区和另一个分区的汉字提取出来,单独作为一个“生僻字扩充码表”,
常见字只使用GB13000.1的二万零九百字就行,这很简单,我的电子表格己经分类有了,提取出来就行,词组用的也是这些字。
剩下的五万字可以放在另一个码表文件里,反正普通人也用不上——
——但每一个字我都要手工输入两个编码(六全码、笔顺码)并设定字频(相同的复杂偏旁部首,会有很多重码),
5万字,估计得花2年的时间。

现在经过了一年时间的使用经验,我还需要研究写个Python脚本整理现在的词库,
筛选出那些“谐音错别词“、以及”不常用、但干扰到常用词汇输入”的词语,剔除它们。
例如:
八个,就被错别词“入个”干扰了。
输入,就被不常用的词“输人”干扰了。
父亲,就被不常用的词“人亲”干扰了。
乱七八糟,就被谐音错别词“乱七八遭”干扰了。
这些正确的词和错误的词,笔顺编码都一样,本来正确的常用词组输入可以排在首位的,但被错误的词挤到后面去了。
所以我说,工作量还蛮多的。以我仅能写简单脚本的三脚猫编程水平,全部做完这些事,恐怕又是一年半载过去了。

现在有很多拼音输入法,都在研究提高输入效率的各种“算法”、云联想等。
我的“单手笔顺输入法”现在没有任何算法,单字和词组输入仅靠码表,准确性就己经能比“拼音输入法”高得多了。
但由于没有云词库、联想,所以一整句话的输入、长句子的输入是短板。
我现在打字时,就发现,在些字或词在输入时,代码其实是可以进一步“智能省略”的(因为没有重码),
目前Rime对拼音就有智能算法优化的支持,但对于以数字为编码的输入法,它就无法实现。
如果以后有程序员开发研究"单手笔顺输入法"的算法的话,那么“单手笔顺输入法”输入的效率会更高。
唉,不是程序员,想想当成个梦就算了。
头像
i990049
帖子: 525
注册时间: 2006-06-05 13:26

Re: debian中输入偏旁部首,候选词会显示方块

#37

帖子 i990049 » 2022-02-27 12:15

Ping-Wu 写了: 2022-02-24 8:06 在我的 Debian 12 系统里,从下面的偏旁部首里,用 ibus-libpinyin 随意(randomly)的选择输入完全没有问题,候选词栏也不会出现方块:

丨 亅 丿 乛 一 乙 乚 丶

八 勹 匕 冫 卜 厂 刀 刂 儿 二 匚 阝 丷 几 卩 冂 力 冖 凵 人 亻 入 十 厶 亠 匸 讠 廴 又

艹 屮 彳 巛 川 辶 寸 大 飞 干 工 弓 廾 广 己 彐 彑 巾 口 马 门 宀 女 犭 山 彡 尸 饣 士 扌 氵 纟 巳 土 囗 兀 夕 小 忄 幺 弋 尢 夂 子

贝 比 灬 长 车 歹 斗 厄 方 风 父 戈 卝 户 火 旡 见 斤 耂 毛 木 肀 牛 牜 爿 片 攴 攵 气 欠 犬 日 氏 礻 手 殳 水 瓦 尣 王 韦 文 毋 心 牙 爻 曰 月 爫 支 止 爪

白 癶 歺 甘 瓜 禾 钅 立 龙 矛 皿 母 目 疒 鸟 皮 生 石 矢 示 罒 田 玄 囗 疋 业 衤 用 玉

耒 艸 臣 虫 而 耳 缶 艮 虍 臼 米 齐 肉 色 舌 覀 页 先 行 血 羊 聿 至 舟 衣 竹 自 羽 糸 糹

貝 采 镸 車 辰 赤 辵 豆 谷 見 角 克 里 卤 麦 身 豕 辛 言 邑 酉 豸 走 足

青 靑 雨 齿 長 非 阜 金 釒 隶 門 靣 飠 鱼 隹

風 革 骨 鬼 韭 面 首 韋 香 頁 音

髟 鬯 鬥 高 鬲 馬

黄 鹵 鹿 麻 麥 鳥 魚

鼎 黑 黽 黍 黹

鼓 鼠

鼻 齊

齒 龍 龠
那你的输入法用的是什么字体?文泉驿?翻了几页帖子,居然没有一个人说Linux默认使用utf8编码,全部在讨论Unicode的字库
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#38

帖子 驿窗project » 2022-03-01 14:30

用天珩字库能够正常显示,是不是说明onehand的码表是正确的没有问题?
头像
驿窗project
帖子: 226
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: debian中输入偏旁部首,候选词会显示方块

#39

帖子 驿窗project » 2022-03-01 14:31

i990049 写了: 2022-02-27 12:15 那你的输入法用的是什么字体?文泉驿?翻了几页帖子,居然没有一个人说Linux默认使用utf8编码,全部在讨论Unicode的字库
unicode字库是不是就是指用的utf8编码的字库?
或者,你是说改编码 ?
头像
i990049
帖子: 525
注册时间: 2006-06-05 13:26

Re: debian中输入偏旁部首,候选词会显示方块

#40

帖子 i990049 » 2022-03-03 0:10

yq-ysy 写了: 2022-02-23 18:55
astolia 写了: 2022-02-23 16:43 如果说中间两个字的话,可不是什么生僻字的问题,可以算是你做的码表的问题。one_hand.text.dict.yaml里面大量字符的unicode编码是在私人使用区里面。私人使用区这东西,就是unicode规范不做规定,字体可以随意映射到任意字形上。所以只有安装了对应的字体才能显示正确的字形。楼主遇到的情况是,他系统上没有任何字体提供了对应的字形;而你图上的情况是,虽然系统中有字体提供了对应的字形,但却不是原本的字体,所以显示的字形不一样。
经测试需要用windows上的宋体才能显示出正确的字形。
win10下输入5.jpg
输入5的两个字符.jpg
https://github.com/YQ-YSY/stroke-seq_MB 这是我编写的“单手笔顺输入法码表”开源网址,在Readme里就已经说到:
由于Unicode编码包含大量日韩使用的、与汉字字型笔画完全相同的文字(即同一个字重复出现两次),极易造成混淆,故不以此为标准。

所以,我是严格遵循GB国家标准来编写这个码表的,可以在上面的网址下载“单字笔顺.ods”文件,用LibreOffice的Calc电子表格打开查看。
中国汉字的GB国家标准:GBK 已包含了 GB2312; GB13000 已包含了 GBK; GB18030 已包含了 GB13000。
汉字有GB编码的我才会录入码表。只有unicode编码却没有GB编码的,我是不会录入的。
GB18030目前收录了70376个汉字,但思源字体尚未支持全部70376个汉字。

我编写“单手笔顺输入法码表”时,在Ubuntu Linux 下使用思源字体,即 Noto Sans CJK SC ,仅能显示29685个汉字,
其中位于GB13000及其扩充A区的汉字有27665个,在Linux全部都能正常显示。
其余的那一部分GB18030汉字在Linux下大多数无法显示,有一小部分能显示的汉字我已经都标注为“1”并且录入输入法码表,共计2152个。

7万汉字已全部可见.jpg

今天我在Ubuntu Linux下想打开“单字笔顺.ods”文件,却提示XML有错误,无法打开,可能是LibreOffice的软件升级造成的软件Bug。
于是我转到Windows10下使用LibreOffice,电子表格Calc能正常打开“单字笔顺.ods”文件——惊喜发现,能显示全部70376个汉字!
哈哈,看来我可以继续录入“单手笔顺输入法码表”,让全部70376个汉字都能用“单手笔顺输入法”(在windoows下)输入并显示了。

原本设定的字体无法显示某些生僻汉字,在字体栏中的字体名称会以“斜体”警示,然后LibreOffice在Win10下会调用其他的字体替换显示。
经测试,在Win10下,将原本Linux无法显示的汉字复制粘贴到“记事本”里,也能正常显示。
“记事本”使用的字体是:微软雅黑 Microsoft YaHei UI 。可惜,这是一个商业字体,不是开源字体,也不是免费字体。

也就是说,一楼你可以试试在Linux下设置Ibus使用“微软雅黑”字体,应该就能显示候选框里的所有汉字和笔画了。
不过要注意,“微软雅黑”字体不能用在商业项目上,以免被控“盗版侵权”。
同样,如果我用“微软雅黑”这个商业字体,那么我就可以为我的“单手笔顺输入法”录入全部70376个汉字的编码。
工作量好大……还有很多其他事情要做……即使录入了在Linux下也无法显示……除非使用“微软雅黑”字体,但这是侵权的行为……唉。

更新:经过进一步的测试,能显示生僻汉字的,是windows调用的另一个字体 simsunb.ttf 。
详情请见18楼: viewtopic.php?p=3229573#p3229573
前面一堆说谷歌思源字体字库最多的人被打脸了,毕竟商业字体才是字库最多的,支持GB18030还有方正和汉仪,另外GB18030是对应UTF8的,有些字是三个字节甚至四个字节,不像unicode全是两个字节
头像
i990049
帖子: 525
注册时间: 2006-06-05 13:26

Re: debian中输入偏旁部首,候选词会显示方块

#41

帖子 i990049 » 2022-03-03 0:27

驿窗project 写了: 2022-03-01 14:31
i990049 写了: 2022-02-27 12:15 那你的输入法用的是什么字体?文泉驿?翻了几页帖子,居然没有一个人说Linux默认使用utf8编码,全部在讨论Unicode的字库
unicode字库是不是就是指用的utf8编码的字库?
或者,你是说改编码 ?
Unicode 本身只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储。编号怎么对应到二进制表示呢?有多种方案:主要有 UTF-8,UTF-16,UTF-32。

GB 18030 与 GB 2312-1980 和 GBK 兼容,共收录汉字70244个。与 UTF-8 相同,采用多字节编码,每个字可以由 1 个、2 个或 4 个字节组成。编码空间庞大,最多可定义 161 万个字符。支持中国国内少数民族的文字,不需要动用造字区。汉字收录范围包含繁体汉字以及日韩汉字。

上面已经有人说了用微软雅黑就能打出7万多个字库,其实就是因为雅黑完整携带了GB 18030全部7万多个字库,另外的还有方正和汉仪,至于文泉驿和思源是不是包括完整的GB 18030,你自己找冷僻字和少数民族语言去测试好了。

看完整个帖子,其实就是输入法默认调用哪个字体显示的问题,不管什么输入法,只要能够调用雅黑方正汉仪的GB 18030字体,都能正确显示,显示不了自己就慢慢测试软件默认使用什么字库吧

PS:你还真的必须承认商业字体就是字库齐全,那些开源字体字库有时候还真是夸大其词 :Haha
头像
astolia
论坛版主
帖子: 6499
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#42

帖子 astolia » 2022-03-03 11:06

i990049 写了: 2022-03-03 0:10 不像unicode全是两个字节
i990049 写了: 2022-03-03 0:27 Unicode 本身只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储
你不觉得这两句话互相矛盾吗?另外这东西想一想就知道,如果unicode只有2个字节,那才65536种编码,你觉得能够容下世界上的所有文字?
i990049 写了: 2022-03-03 0:27 上面已经有人说了用微软雅黑就能打出7万多个字库,其实就是因为雅黑完整携带了GB 18030全部7万多个字库
你没看你引用的帖子中最后补充的内容?
头像
i990049
帖子: 525
注册时间: 2006-06-05 13:26

Re: debian中输入偏旁部首,候选词会显示方块

#43

帖子 i990049 » 2022-03-03 16:42

astolia 写了: 2022-03-03 11:06
i990049 写了: 2022-03-03 0:10 不像unicode全是两个字节
i990049 写了: 2022-03-03 0:27 Unicode 本身只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储
你不觉得这两句话互相矛盾吗?另外这东西想一想就知道,如果unicode只有2个字节,那才65536种编码,你觉得能够容下世界上的所有文字?
i990049 写了: 2022-03-03 0:27 上面已经有人说了用微软雅黑就能打出7万多个字库,其实就是因为雅黑完整携带了GB 18030全部7万多个字库
你没看你引用的帖子中最后补充的内容?
第一,你没看前面有人说了用微软雅黑和Unicode的帖子吗?那你来说说下面这张图片的Unicode和UTF-8有什么区别。要不要我跟你说ANSI指的是ANSI-8?ANSI还有其他编码?一看你就没用Unicode存过文档。
无标题.png

第二,一楼讨论的内容是文档字体显示的问题,上面图片里的文档编码Unicode说的当然就是UTF-16,不论英文还是汉字每个字符都是两个字节,UTF-8英文是一个字节,汉字大部分是两个字节,有些是三个字节或者四个字节,这对英文为主的操作系统储存文档就显得浪费空间,所以大部分非Windows的系统为了节省空间采用UTF-8编码。早期人人影视字幕组的ass字幕全是Unicode编码,做出来的字幕比ANSI编码的srt字幕大一倍,后来使用Aegisub做字幕以后才变成UTF-8编码。

第三,这个帖子不是写给你一个人看的,既然有人提到思源和文泉驿,我就顺便说了,能够跟UTF-8对应的字库是GB18030,前面有人说了微软雅黑、宋体的字库有7万多个,看看人家字体大小就知道了,国内方正、汉仪和有爱的GB18030字体也是差不多大小,思源和已经停更的文泉驿的字体文件才多大?想测试思源和文泉驿是否真的100%匹配GB18030的全部字库,把一楼那些偏旁部首、台湾的注音符号、人民币背面那些少数民族文字用微软雅黑、宋体存个文档再改成思源和文泉驿字体就知道了。国家编码官方说GB18030比GBK多了日韩和少数民族的文字,那些做日剧韩剧的字幕组应该更清楚哪些字体不支持日文韩文。

微软雅黑是有8万个字符的,这里放上链接,字符加字形8万多 https://www.fontke.com/font/169628164/
接下来是文泉驿,7万多字符 https://www.fontke.com/font/188944905/
接下来明确支持GB18030的字体,查了几个,宋体、新宋体是6万多字符,港台用的mingliu GB18030字体少一点点,接下来是内地的有爱GB18030字体,然后才是方正和汉仪的GB18030,5万多一点字符,剩下那些字体种类太少就不看了。

这里搜出来的Ubuntu自带的字体才4万多个字符,不管你用输入法的字体还是系统默认字体,都不可能比前面说的字体多,除非你的输入法自带一个8万字符的字体,至于思源,人家从来就没有说过自己支持GB18030,不信拿前面几楼的符号去测试好了。 https://www.fontke.com/search/font/Ubuntu/

你不得不承认,商业字体和开源字体的GB18030字库还真的是有区别,那些标榜不用商业字体的人当然输不出一楼的字符。


第四,你在WINDOWS里面鼠标右键建立一个txt文档,里面带写个♪,另存为UTF-8编码,去到别的系统打开这个txt文档,可能显示不了♪,♪变成了问号,为什么?因为UTF-8还区分BOM和WITHOUT BOM,就算字体的字符再多,如果选错编码保存文档,照样显示不了特殊符号,看不懂自己搜索BOM是什么吧。
头像
astolia
论坛版主
帖子: 6499
注册时间: 2008-09-18 13:11

Re: debian中输入偏旁部首,候选词会显示方块

#44

帖子 astolia » 2022-03-03 17:24

i990049 写了: 2022-03-03 16:42 第一,你没看前面有人说了用微软雅黑和Unicode的帖子吗?那你来说说下面这张图片的Unicode和UTF-8有什么区别。要不要我跟你说ANSI指的是ANSI-8?ANSI还有其他编码?一看你就没用Unicode存过文档。
这个帖子里我们讨论的unicode,是指的是unicode标准,https://baike.baidu.com/item/%E7%BB%9F% ... 81/2985798 ,而不是微软自顾自命名为unicode实际是小尾序utf16的东西,懂了吗?
i990049 写了: 2022-03-03 16:42 第二,一楼讨论的内容是文档字体显示的问题,上面图片里的文档编码Unicode说的当然就是UTF-16,不论英文还是汉字每个字符都是两个字节
2个字节已经是老黄历了,自己去查一下ucs-2和utf16的关系
i990049 写了: 2022-03-03 16:42 微软雅黑是有8万个字符的,这里放上链接,字符加字形8万多 https://www.fontke.com/font/169628164/
你放的这个链接,不就正好证明了微软雅黑没有做私人使用区的字,导致无法完全兼容gb18030标准?
i990049 写了: 2022-03-03 16:42 第四,你在WINDOWS里面鼠标右键建立一个txt文档,里面带写个♪,另存为UTF-8编码,去到别的系统打开这个txt文档,可能显示不了♪,♪变成了问号,为什么?因为UTF-8还区分BOM和WITHOUT BOM,就算字体的字符再多,如果选错编码保存文档,照样显示不了特殊符号,看不懂自己搜索BOM是什么吧。
实际上utf8并不需要bom,unicode规范也不推荐给utf8加bom。微软非要加bom的原因可能是选择了utf16当内码,一切相关东西不得不向utf16靠
头像
i990049
帖子: 525
注册时间: 2006-06-05 13:26

Re: debian中输入偏旁部首,候选词会显示方块

#45

帖子 i990049 » 2022-03-04 2:35

astolia 写了: 2022-03-03 17:24
i990049 写了: 2022-03-03 16:42 第一,你没看前面有人说了用微软雅黑和Unicode的帖子吗?那你来说说下面这张图片的Unicode和UTF-8有什么区别。要不要我跟你说ANSI指的是ANSI-8?ANSI还有其他编码?一看你就没用Unicode存过文档。
这个帖子里我们讨论的unicode,是指的是unicode标准,https://baike.baidu.com/item/%E7%BB%9F% ... 81/2985798 ,而不是微软自顾自命名为unicode实际是小尾序utf16的东西,懂了吗?
i990049 写了: 2022-03-03 16:42 第二,一楼讨论的内容是文档字体显示的问题,上面图片里的文档编码Unicode说的当然就是UTF-16,不论英文还是汉字每个字符都是两个字节
2个字节已经是老黄历了,自己去查一下ucs-2和utf16的关系
i990049 写了: 2022-03-03 16:42 微软雅黑是有8万个字符的,这里放上链接,字符加字形8万多 https://www.fontke.com/font/169628164/
你放的这个链接,不就正好证明了微软雅黑没有做私人使用区的字,导致无法完全兼容gb18030标准?
i990049 写了: 2022-03-03 16:42 第四,你在WINDOWS里面鼠标右键建立一个txt文档,里面带写个♪,另存为UTF-8编码,去到别的系统打开这个txt文档,可能显示不了♪,♪变成了问号,为什么?因为UTF-8还区分BOM和WITHOUT BOM,就算字体的字符再多,如果选错编码保存文档,照样显示不了特殊符号,看不懂自己搜索BOM是什么吧。
实际上utf8并不需要bom,unicode规范也不推荐给utf8加bom。微软非要加bom的原因可能是选择了utf16当内码,一切相关东西不得不向utf16靠
说得好像usc2很优秀似的,既然你说两个字节的utf16过时了,那ucs2编码英文字符也是用两个字节,用英文的国家凭什么用这种浪费空间的编码?前面已经有人说过用Unicode utf16保存的文档会乱码,后面就没必要讨论ucs2编码了,都是两个字节,内容都是一样的,只不过排练顺序不同,照样会出现乱码的问题,跟朝三暮四的成语本意差不多,不管你早上吃三个桃子还是四个桃子,你一天就吃七个。
https://blog.csdn.net/qweewqpkn/article ... s/50194441

下面再来说你所谓的雅黑兼容的问题,先说是不是,再说能不能。雅黑是微软请方正设计的字体,所以雅黑中文部分的字符大部分是跟方正是很接近的,对方正来说,微软雅黑就是方正兰亭黑,购买了方正兰亭黑的授权之后便可以商业使用微软雅黑!Windows 10上面的雅黑还加多了一些新字符和标点符号,补充支持了在国标GB18030-2000以外的199个汉字,所以最新版雅黑有199个汉字是GB18030-2000没有的,有兴趣的可以把上楼帖子里面支持GB18030的字体全试一遍,看看还有谁支持这199个汉字。
https://zhuanlan.zhihu.com/p/28575028

Vista 及之后的 Windows 中宋体/新宋体、黑体、楷体、仿宋、微软雅黑支持 GB18030-2000 字符集,SimSun-ExtB 只支持 GB18030-2005 字符集扩展 B 部分

这就是前面有人回帖说用宋体SimSun-ExtB打出了特殊符号的原因,因为他那个符号就在宋体SimSun-ExtB里面,别的字体都没这个字符,你要是觉得ucs2可以取代别的编码,先把SimSun-ExtB里面的字符收了再说,哪位同学研究过最新版Unicode的可以说说跟SimSun-ExtB里面的字符对应的Unicode编码具体在哪个位置。
https://www.cnblogs.com/chendc/p/9298832.html
所以目前雅黑对应的字符是GB18030-2000,不是GB18030-2005,因为在 GB18030 中扩展 B 部分并不是强制标准,所以已经有了8万个字符的雅黑没有GB18030-2005的B 部分。请问你说的雅黑不兼容GB18030是什么意思?因为不包含非强制标准所以不兼容?先搞清楚雅黑对应GB18030哪个标准再说。
回复