2010-02-14 1 views
3

어떻게 인텔 C 컴파일러에서 러시아 문자열을 정의 할 수 있습니까?인텔 C 컴파일러 및 L ""접두어

_wsetlocale(LC_ALL, L"Russian"); 
wprintf(L"текст"); 

을 그리고 그것은 작동합니다 MSVS 2008 년에 나는 그렇게. 에서 ICC가 작동하지 않습니다.

답변

1

문제를 진단하려면 컴파일하는 동안 인코딩 된 값이 어떤 값인지 확인해야합니다. 같은 일부 코드 :

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")를 사용해 볼 수 있습니다.