wxString到UniChar *

时间:2010-08-03 06:59:42

标签: c++ macos wxwidgets unichar wxstring

如何从wxString转换为UniChar?

1 个答案:

答案 0 :(得分: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)飞行中的实例)。

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