如何从 wxString 转换为 UniChar?
1 回答
您必须检查 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。