Fonts 什么是CHAR2B类型?
在中,定义了一个名为Fonts 什么是CHAR2B类型?,fonts,character-encoding,x11,Fonts,Character Encoding,X11,在中,定义了一个名为CHAR2B的类型,它只是一个由两个字节组成的结构:byte1和byte2。该类型仅在两个请求中使用,querytextents和ImageText16,这两个请求都用于指定字体名称 我的问题是:CHAR2B的意义是什么?它是如何使用的?这种类型对我来说似乎毫无意义,因为: 有一个名为ImageText8的请求,它只使用字节字符串作为字体名称,而不是ImageText16中的CHAR2B字符串 许多其他请求将常用的“字节字符串”作为输入,而不是“字符字符串”,例如Query
CHAR2B
的类型,它只是一个由两个字节组成的结构:byte1
和byte2
。该类型仅在两个请求中使用,querytextents
和ImageText16
,这两个请求都用于指定字体名称
我的问题是:CHAR2B
的意义是什么?它是如何使用的?这种类型对我来说似乎毫无意义,因为:
- 有一个名为
的请求,它只使用字节字符串作为字体名称,而不是ImageText8
中的ImageText16
字符串CHAR2B
- 许多其他请求将常用的“字节字符串”作为输入,而不是“字符字符串”,例如
,QueryExtension
,InternAtom
,等等OpenFont
仅用于2个请求CHAR2B
CHAR2B
是X11协议的一部分,那么如何使用它呢?编码是什么?UTF16?其他类型的双字节编码?
CHAR2B
s是用于显示文本的字体索引。您链接的文档非常清楚地说明
STRING16中大字符的主要解释是,它们由两个字节组成,用于索引二维矩阵,因此使用CHAR2B而不是CARD16。这与索引2字节字符的JIS/ISO方法相对应。预计大多数大字体将使用2字节矩阵索引进行定义。对于使用线性索引构造的大字体,通过将字节1视为最高有效字节,可以将CHAR2B解释为16位数字。这意味着客户端应始终首先传输16位字符值的最高有效字节,因为服务器永远不会交换字节数量李>
谢谢你的回答,所以这是我的误解。你有没有我可以为那些想了解更多关于X11字体的人阅读的资源?现在大多数应用程序都在客户端处理字体。我的家用电脑甚至没有任何服务器端字体,除了两种必需的丑陋固定字体。因此,坦率地说,了解真正的X11字体是浪费时间(除非您支持传统产品)。您想要学习的库是libxft