2010-11-24 184 views
1

可以說我有這個代碼片段,它返回一個unicode CLR字符串與西裏爾字母Unicode字符串++/CLI

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

當我看到在C#代碼屬性引用此組件中,我得到了一堆的「?」就好像C++編譯器將字符串「扁平化」爲單字節字符一樣。

我沒有保存C++源文件爲UTF-8(甚至是Unicode的),我總是得到從編譯器爲每個非ANSI字符這樣的警告:

警告C4566:字符由universal-代表 角色名「\ u041E」 不能在當前 代碼頁(1252)

現在表示,有一個編譯器開關來強制編譯器把文字爲Unicode?我似乎無法找到一個。

+1

嘗試一個Unicode字符串文字:`L「...」`。 – Philipp 2010-11-24 14:39:47

回答

3

嘗試Unicode字符串文字:L"..."