MF C потеря текста Unicode - PullRequest
0 голосов
/ 09 июля 2020

У меня есть диалог MF C:

UNICODE и _UNICODE определены.

class VerifyComp : public CDialog
{
public:
  CString m_VerifyText;
  virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
};

void VerifyComp::DoDataExchange(CDataExchange* pDX)
{
  m_VerifyText = L"Ø2.0 X 4.1";
  pDx->m_bSaveAndValidate = 0;
  DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
  pDx->m_bSaveAndValidate = 1;
  DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
}

Результат m_VerifyText == L "O2.0 X 4.1"; Я ожидаю, что m_VerifyText не изменился.

Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

В файле диалога .r c есть свойство, вызывающее проблему.

введите описание изображения здесь

OEM Convert было установлено на true. Это должно быть ложно.

0 голосов
/ 09 июля 2020

Проблема, с которой вы столкнулись, заключается в том, что наличие литерала с расширенными символами не означает, что сам файл может обрабатывать символы Unicode.

Чтобы исправить это, сохраните файл, используя набор символов Unicode. Go в Файл-> Сохранить как, щелкните правой кнопкой мыши «Сохранить», выберите «Сохранить с кодировкой», затем нажмите «Да». Теперь из списка кодировок выберите один из вариантов Unicode (я обычно предпочитаю utf-8 с подписью).

...