0

如何从 wxString 转换为 UniChar?

4

1 回答 1

2

您必须检查 wxMBConv 类。

所有这些转换的基类是 wxMBConv 类(它本身实现标准的 libc 语言环境转换)。派生类包括 wxMBConvLibc、几个不同的 wxMBConvUTFxxx 类和 wxCSConv,它们实现了不同类型的转换。您还可以为您自己的自定义编码派生自己的类,并在需要时使用它。您需要做的就是覆盖 MB2WC 和 WC2MB 方法。

wxWidgets 提供的几个 wxMBConv 类具有预定义的实例(wxConvLibc、wxConvFileName、wxConvUTF7、wxConvUTF8、wxConvLocal)。您可以直接使用这些预定义对象,也可以实例化您自己的对象。

变量 wxConvCurrent 指向用户界面应该使用的转换对象,在用户界面不是基于 Unicode 的情况下(如 GTK+ 1.2)。默认情况下,它指向 wxConvLibc 或 wxConvLocal,这取决于哪个在当前平台上效果最好。

wxCSConv 类很特别,因为当它被实例化时,您可以告诉它应该使用哪个字符集,这使得保留它们的许多实例很有意义,每个实例都有不同的字符集(或者您可以在飞)。

预定义的 wxCSConv 实例 wxConvLocal 预设为使用默认用户字符集,但您应该很少需要直接使用它,最好通过 wxConvCurrent。

于 2010-08-03T10:09:55.330 回答