2013-02-21 47 views
1

我學習C語言。我需要用Unicode數據創建一些文本文件。我已經寫了這樣的代碼:文本文件中的本地化字符無效

#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(Linux)的打開文件 – 2013-02-21 19:14:37

+0

。 – 2013-02-21 19:19:46

+0

gedit認爲該文件是什麼編碼?它是否與實際編碼匹配?如果你使用的是Linux,那麼我懷疑UTF-8將是首選的編碼方式。 – 2013-02-21 19:20:50

回答

2

有可能您在運行程序的終端中的語言環境有問題。如果是這樣,你只需要設置的語言環境是這樣的:

setlocale(LC_CTYPE,"");

更多信息here

+0

是的,它工作正常!謝謝! – 2013-02-22 04:06:01