Я проверил преобразование Юникода с диалоговым окном UNICODE MFC, где я могу ввести некоторых китайцев в поле редактирования. После считывания символов с помощьюcstring m_pszdata не соответствует преобразованному символу char * в UNICODE
DDX_Text (PDX, IDC_EDIT1, m_strUnicode) UpdateDate (TRUE),
в m_pszdata
из m_strUnicode
шоу "е0 65 2d 4e 1f 75 09 67". Затем я использовал следующий код для преобразования его в char *:
char * psText; psText = новый char [dwMinSize]; WideCharToMultiByte (CP_OEMCP, NULL, m_strUnicode, -1, psText, dwMinSize, NULL, FALSE);
The psText
содержит "се-де-d6 d0 с9 фа d3 d0", ничего подобного с m_pszdata
из m_strUnicode. Кто-нибудь, пожалуйста, объясните, почему это так?
Я выбрал Юникод в настройках проекта MFC при запуске проекта, и я сделал вход 无中生有 для проверки, считая, что китайские символы находятся в формате Unicode. Был ли я неправ? – LSSG
Получил. Благодарю. Я снова тестировал, используя английские буквы abcdef, и он работал, как ожидалось. Могу ли я сказать, что независимо от строки, которую я вводил, она будет в UTF-16-LE, если используется UNICODE, и после преобразования в многобайтовый он будет в строке кодовой страницы по умолчанию? – LSSG