2011-10-25 17 views
0

我不是真的很好使用wxWidgets ..我將不勝感激,如果有人可以幫我解決我的問題。我只想將一個.html文件(wxString)編碼爲十六進制(即時通訊不太確定它是否爲十六進制:它看起來像:0x3e,0x56,0x4b,0xcf,0x04,0x50,0x30) 0x4a,0×11)wxWidgets:使用wxCSConv的wxString編碼wxMBConv

解碼它,我用

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

我覺得一個可愛的有點笨..

謝謝!

+0

是不是你提供的代碼示例在那裏創建一個字符串緩衝區的wxString? ...而不是將十六進制字符流解碼爲.html? –

+0

你究竟想用這個做什麼? –

+0

我正想問他想完成什麼! –

回答

1

您發佈的代碼是從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.

+0

非常感謝您的幫助。我會閱讀你的鏈接! atm使用2.8.12 – smo