wxWidgets: кодирование wxString с использованием wxCSConv wxMBConv

#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

Я рекомендую вам узнать кое-что о кодировке символов. Вот ссылка на мой взгляд на это.