3
어떻게 인텔 C 컴파일러에서 러시아 문자열을 정의 할 수 있습니까?인텔 C 컴파일러 및 L ""접두어
_wsetlocale(LC_ALL, L"Russian");
wprintf(L"текст");
을 그리고 그것은 작동합니다 MSVS 2008 년에 나는 그렇게. 에서 ICC가 작동하지 않습니다.
어떻게 인텔 C 컴파일러에서 러시아 문자열을 정의 할 수 있습니까?인텔 C 컴파일러 및 L ""접두어
_wsetlocale(LC_ALL, L"Russian");
wprintf(L"текст");
을 그리고 그것은 작동합니다 MSVS 2008 년에 나는 그렇게. 에서 ICC가 작동하지 않습니다.
문제를 진단하려면 컴파일하는 동안 인코딩 된 값이 어떤 값인지 확인해야합니다. 같은 일부 코드 :
wchar_t *x = L"текст";
for(int i=0; x[i] != L'\0'; i++)
{
printf("%02x\n", x[i]);
}
당신은 그 "%02x"
-"%04x"
sizeof(wchar_t) == 4
경우를 변경할 수 있습니다.
값이 다른 경우 컴파일러가 소스 파일을 해석 할 때 다른 인코딩을 사용하는 경우 컴파일 타임에 문제가 발생할 수 있습니다.
코드 파일 > U + 007F를 소스 파일에 사용하지 말고 문자열을 리소스 파일에 외부화하고 적절한 인코딩을 사용하여로드하십시오. 원하는 경우 유니 코드 이스케이프 시퀀스 (예 : L"\u0442\u0435\u043a\u0441\u0442"
)를 사용해 볼 수 있습니다.