作者:zenghao1996
什么是“URO汉字”和“Ext-A汉字”
Unicode 标准初次制定时,整合了当时的中国大陆 GB 2312、台湾 Big 5、日本 JIS 、韩国 KS X 字符集,包含 20902 个汉字,组成 “中日韩统一表意文字区 (CJK Unified Ideographs)”,这些汉字称为“URO汉字”。
URO 汉字基本等同于 GBK 汉字,具体字符集可以查看[官方发布的 URO 汉字表 (英语)]。
但由于各地字符集标准指定年代久远 (比如 GB 2312 是 1980 年发布的),受当时的技术条件限制,只收录了常用字。于是到 2000 年制定 Unicode 3.0 标准时,又加入了 6582 个汉字,组成 “中日韩统一表意文字扩展区 A (CJK Unified Ideographs Extension A)”,这些汉字被称为“Ext-A 汉字”。
扩展A区汉字主要包括
古籍用字(扩展A区大多都是这一类);
方言用字,如“㨃”(“怼”的本字);
类推简化字,如“”(yǎn,龑,常用于人名);
日韩自造汉字,如“㐊”。
之前版本存在的问题
在8.2.5之前,CN、TW、PTR 三个地区的服务器都允许在角色名中使用汉字,允许的范围包括URO和Ext-A。
但是,在简体中文客户端的默认字体文件里,只包含了URO汉字,而Ext-A汉字都被做成了一字宽的空白。
(ARKai_T.ttf,Ext-A 汉字都被做成了空白。灰色的叉表示该字体没有这个码位。)
于是,如果有人不小心(或者故意)在角色名中使用的这些字符,结果一般会很糟糕:
如果没有替换字体,就会显示成空白;
如果替换成GBK字体,一般会显示成问号;
如果替换成GB18030或更大字符集的字体,则能正确显示。
这不仅仅是不方便。更有甚者,利用此技术缺陷,做违规的事,让许多玩家想举报却因为看不见名字而放弃。
8.25版本的变化
CN(国服)、TW(台服)、PTR(测试服)的汉字角色名,只能使用URO的汉字,禁用Ext-A汉字。
US(美服)、EU(欧服)、KR(韩服)原本就不允许汉字角色名,未作调整。
现有的角色名中的Ext-A汉字,如果字体不支持(包括原生字体),就会显示成问号,而不是空白。
如果你的字体原本就能正常显示这些汉字,则不受影响。
(尝试在名字中使用Ext-A汉字“”,提示“名字只能包含字符”。该名字系虚构。)
(改回原生字体,“”字被显示成问号。)