使用 xlib 在 U+FFFF 上方绘制 Unicode 文本?
Drawing Unicode text above U+FFFF with xlib?
我想使用原始 Xlib 绘制 Unicode 文本。
我发现的仅有的两个文本绘制函数是 XDrawText()
,它接受未指定编码的文本,可能是 ASCII,以及 XDrawText16()
,它接受未指定编码的文本,它是可能是 UCS-2。这两个功能都让我感到悲伤。另外他们不让我使用任何高于 U+FFFF 的有用代码点。
有没有办法使用普通 Xlib 绘制非 BMP Unicode 文本?
(我对第三方字体渲染库不感兴趣。)
使用 XDrawString
家族 (http://www.x.org/wiki/guide/fonts/) 怎么样?具体来说,使用 Xutf8DrawString()
.
为了完整起见,您还可以使用XChar2b
,这样您就可以显示最多U+FFFF
的任何字符(16位编码的字符,也就是说UTF-8
到 3 个字节,涵盖除数学公式和表情符号之外的所有字符 - 包括大多数中文、日文和韩文字形表示 Wikipedia)。
然后您将需要一个 utf8toXChar2b
翻译功能,例如 Alan 所描述的功能。这个解决方案依赖于 Xutil.h
,我认为它是 Xlib 的标准部分(在 Arch linux 中这样分布)——而 Xft 依赖于 glib-2.0
.
我提到这种可能性是因为你的问题没有明确指出 U+FFFF
以上的字符。事实上,XChar2b
并没有走那么远。
我想使用原始 Xlib 绘制 Unicode 文本。
我发现的仅有的两个文本绘制函数是 XDrawText()
,它接受未指定编码的文本,可能是 ASCII,以及 XDrawText16()
,它接受未指定编码的文本,它是可能是 UCS-2。这两个功能都让我感到悲伤。另外他们不让我使用任何高于 U+FFFF 的有用代码点。
有没有办法使用普通 Xlib 绘制非 BMP Unicode 文本?
(我对第三方字体渲染库不感兴趣。)
使用 XDrawString
家族 (http://www.x.org/wiki/guide/fonts/) 怎么样?具体来说,使用 Xutf8DrawString()
.
为了完整起见,您还可以使用XChar2b
,这样您就可以显示最多U+FFFF
的任何字符(16位编码的字符,也就是说UTF-8
到 3 个字节,涵盖除数学公式和表情符号之外的所有字符 - 包括大多数中文、日文和韩文字形表示 Wikipedia)。
然后您将需要一个 utf8toXChar2b
翻译功能,例如 Alan 所描述的功能。这个解决方案依赖于 Xutil.h
,我认为它是 Xlib 的标准部分(在 Arch linux 中这样分布)——而 Xft 依赖于 glib-2.0
.
我提到这种可能性是因为你的问题没有明确指出 U+FFFF
以上的字符。事实上,XChar2b
并没有走那么远。