假设我有这段代码,它返回一个带有西里尔字母的 unicode CLR 字符串
property String^ EIDErrorDescriptionSr {
String^ get()
{
switch(EIDErrorCode)
{
case EID_OK: return "Операција успешно завршена";
...
当我在 C# 代码中读取引用此程序集的属性时,我得到一堆“?” 好像 C++ 编译器将字符串“扁平化”为单字节字符。
我确实将 C++ 源文件保存为 UTF-8(甚至是 Unicode),并且对于每个非 ansi 字符,我总是从编译器那里得到这个警告:
警告 C4566:由通用字符名称“\u041E”表示的字符无法在当前代码页中表示 (1252)
现在,是否有编译器开关强制编译器将文字视为 unicode?我似乎找不到一个。