2013-02-21 4 views
1

C 언어를 배웁니다. 유니 코드 데이터로 텍스트 파일을 만들어야합니다. 나는 그런 코드를 썼다 :텍스트 파일의 지역화 된 문자가 잘못되었습니다.

#include<stdio.h> 
#include<stdlib.h> 
#include<wchar.h> 

int main(int argc, char *argv[]) { 

    wchar_t *s1 = L"Привет, мир!\n"; 
    wchar_t *s2 = L"Hello, World!"; 

    FILE *fp = fopen("./hello.txt", "w"); 

    fputws(s1, fp); 
    fputws(s2, fp); 

    fclose(fp); 

    exit(EXIT_SUCCESS); 
} 

그러나 나는 같은 결과를 얻을 :

??????, ???! 
Hello, World! 

가 왜 러시아 문자를하지 않습니다를?

+0

당신은 내가 gedit에서 (리눅스)에서 열 파일 –

+0

를 보는 방법에 대해 설명 바랍니다. –

+0

gedit은 파일을 인코딩하는 데 어떤 인코딩을 사용합니까? 실제 인코딩과 일치합니까? 그리고 리눅스를 사용한다면 UTF-8이 선호하는 인코딩이 될 것으로 생각됩니다. –

답변

2

프로그램을 실행하는 터미널의 로케일에 문제가있을 수 있습니다. 그렇게하면 당신은이 같은 로케일을 설정해야합니다 :

setlocale(LC_CTYPE,"");

더 많은 정보 here

+0

네, 잘 작동합니다! 고맙습니다! –