XmMULTIBYTE_TEXT 或 XmWIDECHAR_TEXT 模式下的 XmStringGenerate()

XmStringGenerate() in XmMULTIBYTE_TEXT or XmWIDECHAR_TEXT mode

我正在尝试使用 XmLabel and a server-side XLFD font (-monotype-arial-medium-r-normal--*-90-*-*-p-*-iso10646-1). Whenever I use XmStringCreate() or XmStringCreateLtoR() 作为 XmString 工厂来显示一些 Unicode(实际上是西里尔文),结果符合我的预期。

然而,当我尝试使用 XmStringGenerate() 工厂时,为多字节 Unicode 字符串传入 XmMULTIBYTE_TEXT,或为宽字符串传入 XmWIDECHAR_TEXT,垃圾被渲染到屏幕,无论使用何种字体(我都尝试了 UTF-8 和单字节西里尔服务器端字体)。

结果如下所示(第 1 2 行没问题,第 2 到第 6 个标签是用 XmStringGenerate() 创建的,显然 不是 可以):

完整代码(需要 Motif 2.1+ 和 C99 兼容的编译器)是 here

谁能推荐一个适合显示 Unicode 字符(不仅仅是 ISO-8859-1)的工作 XmStringGenerate() 示例?

XmMULTIBYTE_TEXT 依赖于语言环境,因为 n.m suggested, and, aside from CJK(即罗马和斯拉夫语言)只能在 UTF-8 语言环境中使用。核心 X11 字体可以指定为 fonts (XmFONT_IS_FONT):

-monotype-arial-medium-r-normal--*-90-*-*-p-*-iso10646-1

字体集 (XmFONT_IS_FONTSET):

-monotype-arial-medium-r-normal--*-90-*-*-p-*-*-*:

说到 XmWIDECHAR_TEXT 模式,似乎不可能用显式编码指定合适的字体,但设置 字体集 对 Motif 2.1 到 2.3 非常有效.