什么是CHAR2B类型?

时间:2014-03-20 02:05:07

标签: fonts character-encoding x11

X11 protocol specification中,定义了一个名为CHAR2B的类型,它只是两个字节的结构:byte1byte2。该类型仅用于两个请求QueryTextExtentsImageText16,两者都用于指定字体名称。

我的问题是:CHAR2B有什么意义?它是如何使用的?这种类型对我来说似乎毫无意义,因为:

  • 有一个名为ImageText8的请求,它只使用字符串作为字体名称,而不是CHAR2BImageText16的字符串。
  • 许多其他请求将常见的“字符串”作为输入而不是“CHAR2B”字符串,例如QueryExtensionInternAtomOpenFont等。< / LI>
  • CHAR2B仅用于2次请求。

鉴于CHAR2B是X11协议的一部分,如何使用它?什么是编码? UTF-16?一些其他类型的双字节编码?

1 个答案:

答案 0 :(得分:1)

  1. 用于指定要显示的文本,而不是任何字体名称。
  2. 它用于3个请求(PolyText16)。这些请求及其8位副本是处理显示文本的唯一请求。
  3. CHAR2B是用于显示文本的字体中的索引。您非常清楚地链接的文件指出

      

    STRING16中大字符的主要解释是它们由用于索引二维矩阵的两个字节组成,因此,使用CHAR2B而不是CARD16。这对应于索引2字节字符的JIS / ISO方法。预计大多数大字体将使用2字节矩阵索引进行定义。对于使用线性索引构造的大字体,通过将byte1视为最高有效字节,可以将CHAR2B解释为16位数。这意味着客户端应始终首先传输最重要字节的16位字符值,因为服务器永远不会对CHAR2B数量进行字节交换。

  4.