C# VS C ++/CLI의 유니 코드 문자 리터럴
-
22-07-2019 - |
문제
C#:
char z = '\u201D';
int i = (int)z;
C++/CLI:
wchar_t z = '\u201D';
int i = (int)z;
C# "에서i
"내가 예상 한대로 8221 ($ 201d)이됩니다. 반면에 C ++/CLI에서는 65428 ($ ff94)이됩니다. 어떤 종류의 영혼은 이것을 나에게 설명 할 수 있습니까?
편집하다: 크기 wchar_t
여기서는 문제가되지 않을 수 있습니다.
C++/CLI:
wchar_t z = (wchar_t)8221;
int i = (int)z;
여기도, i
8221이됩니다 wchar_t
실제로 내 시스템에 16 비트 정수를 보유하는 게임에 달려 있습니다. Ekeforshus
해결책
다른 팁
에 따르면 위키 백과:
"너비
wchar_t
컴파일러-특이 적이며 8 비트만큼 작을 수 있습니다. 결과적으로 C 또는 C ++ 컴파일러에서 휴대 할 수 있어야하는 프로그램은 유니 코드 텍스트를 저장하는 데 WCHAR_T를 사용해서는 안됩니다. WCHAR_T 유형은 컴파일러 정의 된 와이드 문자를 저장하기위한 것이며 일부 컴파일러에서 유니 코드 문자 일 수 있습니다. "
구현 방법에 대한 가정을해서는 안됩니다.
제휴하지 않습니다 StackOverflow