#c #c #wxwidgets
#c #c #wxwidgets
Вопрос:
Я хочу закодировать HTML-файл (wxString) в шестнадцатеричный. Я пытался добиться этого с помощью
data = wxString((const char*)html_stuff, wxCSConv(wxFONTENCODING_UTF8), sizeof (html_stuff));
Спасибо!
Комментарии:
1. Разве приведенный вами пример кода не создает wxString из строкового буфера? …вместо того, чтобы декодировать поток шестнадцатеричных символов в .html ?
2. Чего вы на самом деле пытаетесь достичь с помощью этого?
3. Я собирался спросить, чего он пытается достичь!
Ответ №1:
Опубликованный вами код преобразуется из UTF8 в unicode
http://docs.wxwidgets.org/2.9.2/classwx_string.html#86a2ec232912c97ed44ba34651d98123
UTF8 использует от 1 до 3 байт для кодирования каждого символа — он используется для отправки документов в формате HTML, чтобы браузеры могли их отображать. Unicode использует 2 байта для кодирования каждого символа — он используется wxString .
Я предполагаю, что то, что вы хотите сделать, это преобразовать wxString в юникоде в UTF8. Есть много разных способов сделать это. «Лучший» способ зависит от нескольких факторов. Проще всего было бы использовать wxString::mb_str() http://docs.wxwidgets.org/2.8.9/wx_wxstring.html#wxstringmbstr
Я рекомендую вам узнать кое-что о кодировке символов. Вот ссылка на мой взгляд на это.