C#:
char z = \'\\u201D\';
int i = (int)z;
C++/CLI:
wchar_t z = \'\\u201D\';
int i = (int)z;
In C# \"i
\" becomes, just as I expect, 8221 (
According to wikipedia:
"The width of
wchar_t
is compiler-specific and can be as small as 8 bits. Consequently, programs that need to be portable across any C or C++ compiler should not use wchar_t for storing Unicode text. The wchar_t type is intended for storing compiler-defined wide characters, which may be Unicode characters in some compilers."
You shouldn't make any assumptions about how it's implemented.