문제

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 z = L'\x201D';

~에서 여기. u는 정의되지 않았습니다.

다른 팁

에 따르면 위키 백과:

"너비 wchar_t 컴파일러-특이 적이며 8 비트만큼 작을 수 있습니다. 결과적으로 C 또는 C ++ 컴파일러에서 휴대 할 수 있어야하는 프로그램은 유니 코드 텍스트를 저장하는 데 WCHAR_T를 사용해서는 안됩니다. WCHAR_T 유형은 컴파일러 정의 된 와이드 문자를 저장하기위한 것이며 일부 컴파일러에서 유니 코드 문자 일 수 있습니다. "

구현 방법에 대한 가정을해서는 안됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top