我正在开发桌面应用程序。 我正面临这个问题。
如运行该代码时在屏幕快照中所见,它为CString分配了俄语字符串,但其值已损坏。
CString csField = vField.bstrVal;
bstrVal包含СтворноеO ^Л。 当我将其分配给CString时,它变为?? s。
答案 0 :(得分:0)
*记住:发生此问题时,请先检查当前的区域性或区域设置。
问题的答案是:
我的代码中有一行将当前的文化设置为 不变的文化。
我无法理解的奇怪事情是,当我通过 setLocale(LC_ALL,NULL)获得当前语言环境时,无论我当前的文化是 Russian ,它都会返回相同的内容>或不变。
为解决此问题,我删除了该代码,现在可以正常工作了。
//Thread::CurrentThread->CurrentCulture = gcnew CultureInfo("");