2010-11-24 15 views
1

Lets sagen, dass ich dieses Fragment von Code haben, die eine Unicode-CLR-String mit kyrillischen Buchstaben gibtUnicode-Zeichenketten in C++/CLI

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

Wenn ich die Eigenschaft in C# -Code lesen Sie diese Montage Referenzierung, erhalte ich einen Haufen des "?" als ob der C++ - Compiler die Zeichenfolge zu Single-Byte-Zeichen "verflacht".

Ich habe die C++ Quelldatei als UTF-8 speichern (auch Unicode) und ich bekomme immer diese Warnung vom Compiler für jeden Nicht-ansi Charakter:

C4566 Warnung: Zeichen dargestellt von Universal- Charakter-Name ‚\ u041E‘ kann nicht im aktuellen Codepage (1252)

nun dargestellt wird, gibt es einen Compiler-Schalter Compiler zu erzwingen Literale als Unicode zu behandeln? Ich kann keinen finden.

+1

Versuchen Sie ein Unicode-String-Literal: 'L" ... "'. – Philipp

+1

d'oh. Danke, es funktioniert. Ich wurde so gehängt, den Compiler zu beschuldigen, dachte nicht einmal darüber nach. – mmix

+0

kann ich Ihren Kommentar zu einer akzeptierten Antwort fördern? – mmix

Antwort

3

Versuchen Sie ein Unicode-String-Literal: L"...".