C++ 丢失Unicode文本的MFC

C++ 丢失Unicode文本的MFC,c++,visual-c++,mfc,visual-studio-2019,C++,Visual C++,Mfc,Visual Studio 2019,我有一个MFC对话框: 定义了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&q

我有一个MFC对话框:

定义了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保持不变


如何修复此问题?

dialog.rc文件中有一个属性导致了此问题


OEM Convert已设置为true。它必须为false。

dialog.rc文件中存在导致问题的属性


OEM Convert已设置为true。它必须为false。

您遇到的问题是,仅仅因为您具有宽字符文本并不意味着文件本身可以处理Unicode字符


要修复此问题,请使用Unicode字符集保存文件。转到文件->另存为,右键单击“保存”,选择“使用编码保存”,然后单击“是”。现在从编码列表中选择一个Unicode选项(我通常更喜欢带签名的utf-8)。

您遇到的问题是,仅仅因为您具有宽字符文本并不意味着文件本身可以处理Unicode字符


要修复此问题,请使用Unicode字符集保存文件。转到文件->另存为,右键单击“保存”,选择“使用编码保存”,然后单击“是”。现在,从编码列表中选择一个Unicode选项(我通常更喜欢带签名的utf-8)。

资源脚本是一个脚本的必需部分。请添加它的最低版本。资源脚本是应用程序的必需部分。请添加它的最小版本。