C ++ / CLI中的unicode字符串文字

时间:2010-11-24 11:05:20

标签: string unicode c++-cli literals unicode-literals

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

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

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

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

  

警告C4566:代表的字符   通过通用字符名'\ u041E'   不能代表当前   代码页(1252)

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

1 个答案:

答案 0 :(得分:3)

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