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 非常有效.
我正在尝试使用 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 非常有效.