我在使用wxWidgets方面并不十分好。如果有人可以帮助我解决我的问题,我将不胜感激。

我唯一想做的就是将一个.html文件(wxString)编码为十六进制(我不确定是不是十六进制:看起来像这样:0x3e,0x56、0x4b,0xcf,0x04、0x50、0x4a,0x11)

解码我用过的

data = wxString((const char*)html_stuff, wxCSConv(wxFONTENCODING_UTF8), sizeof (html_stuff));


我觉得有点傻。

谢谢!

最佳答案

您发布的代码正在从UTF8转换为unicode

http://docs.wxwidgets.org/2.9.2/classwx_string.html#86a2ec232912c97ed44ba34651d98123

UTF8使用1到3个字节来编码每个字符-它用于以HTML发送文档,以便浏览器可以显示它们。 Unicode使用2个字节来编码每个字符-wxString使用它。

我的猜测是您要执行的操作是将Unicode wxString转换为UTF8。有很多不同的方法可以做到这一点。 “最佳”方式取决于几件事。最简单的方法是使用wxString :: mb_str()http://docs.wxwidgets.org/2.8.9/wx_wxstring.html#wxstringmbstr

我建议您学习有关字符编码的知识。 Here is a link to my take on it.

09-08 04:23