对兼容字被自动替换现象的探讨

各位大佬!闲来无事,我发现了一个问题。
一、goldendict等WEBKIT内核浏览器
即使我在css文件中,对于多个字体文件限定了unicode-range,但是在font-family中,不同字体的声明顺序会对结果显示有影响。
比如我根据 Quantus提供的兼容字对照表做了一个mdx,如下:
兼容字列表.part1.rar (15 MB)
兼容字列表.part2.rar (11.0 MB)
在font-family中:
1、以FSung-p, FSung-2的顺序声明,则会出现兼容字被替换成本字的现象。
2、但如果以FSung-2, FSung-p的顺序声明,则显示正常。
二、Mdict等IE内核的浏览器
无论什么顺序,都能正常显示兼容字与基本字。
附:
在goldendict中的說文解字,改变了字体声明顺序后的显示结果:

1 个赞

1、Calibri 和 sans-serif我多加了,可以删除,不影响结论。
2、是的,就一个词条。为了检验font-family里不同的声明顺序,对结果的影响。
我这里显示如下,第一列和第二列是不同的:

1 个赞

我这里很奇怪。
font-family:FSung-2, FSung-p,显示正常,两列字不同。
font-family:FSung-p, FSung-2,两列是相同的!

找到了 :grin: 参考参考。

另:一楼的链接错啦,应该链接到67楼。

1 个赞

谢谢指正!已修改。
同时,在汉语大字典里,我将css的:
ZhongHuaSongPlane00, ZhongHuaSongPlane02a, ZhongHuaSongPlane02b
调整顺序,改为:
ZhongHuaSongPlane02a, ZhongHuaSongPlane02b, ZhongHuaSongPlane00
帖子里讨论的关于“直”的兼容字被替换问题也解决了。

2 个赞

慎重,慎重!建议再看看大字典的215楼及前后帖。

谢谢!问题不大,plane0和plane2的unicode没有重叠,我只是改变ZhongHuaSongPlane的内部顺序,这样就解决了兼容字显示的问题。试了之后GD和手机dicttango都显示正常了!

1 个赞

部件检索中同样如此。(以下只讨论goldendict等WEBKIT内核的浏览器)
不同的font-family声明顺序,对结果也有影响:
1、FSung-p, FSung-2
则SIP区域的兼容字被替换成BMP的字。

2、FSung-2, FSung-p
则显示正常。

不过是否存在其他潜在问题——未知!

附一张自制的兼容字区域对应图表,在WEBKIT内核的浏览器中,字体声明顺序会影响BMP(Basic Multilingual Plane,plane0,基本多文种平面)与SIP(Supplementary Ideographic Plane,plane2,表意文字补充平面)之间的兼容字替换。

【结论】
在css中,font-family的多个字体:
1、以SIP, BMP的顺序排列,兼容字以及对应的基本字都能正常显示。
2、以BMP, SIP的顺序排列,兼容字会被替换为对应的基本字。

3 个赞

https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-east-asian 有关系吗
是否可以通过font-variant-*类的样式控制

抱歉已超出我所掌握的知识。这个问题还是留给精通此专业的人士吧 :handshake:

仔细看了下说明,应该跟这个无关。

在GoldenDict.Qt5WebKit, FSung-p, FSung-2的声明顺序,对结果的影响

body {font-family:Calibri, sans-serif, FSung-p, FSung-2;}

body {font-family:Calibri, sans-serif, FSung-2, FSung-p;}

在GoldenDict.Qt5WebKit, FSung-p, FSung-2的声明顺序,对结果的影响

在GoldenDict.Qt5WebKit, Fonts的声明顺序,对结果的不影响

body {font-family:‘Calibri Light’, ZhongHuaSongPlane02-SW, ZhongHuaSongPlane00-SW, FZ-SW, FSung-SW-super, FSung-SW-P0, FSung-SW-Ext, FSung-3}