1

假设我有这段代码,它返回一个带有西里尔字母的 unicode CLR 字符串

    property String^ EIDErrorDescriptionSr { 
       String^ get() 
       {
        switch(EIDErrorCode) 
        {
         case EID_OK: return "Операција успешно завршена";
...

当我在 C# 代码中读取引用此程序集的属性时,我得到一堆“?” 好像 C++ 编译器将字符串“扁平化”为单字节字符。

我确实将 C++ 源文件保存为 UTF-8(甚至是 Unicode),并且对于每个非 ansi 字符,我总是从编译器那里得到这个警告:

警告 C4566:由通用字符名称“\u041E”表示的字符无法在当前代码页中表示 (1252)

现在,是否有编译器开关强制编译器将文字视为 unicode?我似乎找不到一个。

4

1 回答 1

3

尝试使用 Unicode 字符串文字:L"...".

于 2010-11-25T22:17:18.303 回答