我使用ccs = encoding(如MSDN中所述)將編碼設置爲UTF-8,當打開與fopen文件。使用fopen(文件,「r,ccs = UTF-8」)無法讀取UTF8編碼文件
當寫入文件時,我在一個文本編輯器中的Unicode顯示,因爲它應該打開該文件,它工作正常
wchar_t* unicode_text = L"こんにちは";
FILE* f = fopen("C:\\test.txt", "w,ccs=UTF-8");
fwprintf(f, L"%s\n", unicode_text);
fclose(f);
。 但是,試圖從創建的文件讀取時未檢測到UTF-8編碼:
wchar_t buffer[1000];
FILE* f = fopen("C:\\test.txt", "r,ccs=UTF-8");
fgetws(buffer, 1000, f);
fclose(f);
MessageBoxW(0, buffer, 0, 0);
這表明「我»¿AAA«ã¡ã¯」的消息框。
爲什麼會發生這種情況? ccs = UTF-8僅在打開要寫入的文件時有效嗎?
'我»¿AAA«ã¡ã¯'絕對不會是ASCII。實際上,它完全是*非* -ASCII。 – Joey
不夠公平,我已經刪除了關於ASCII的部分。 – sashoalm
你爲什麼試圖做這個醜陋的非標準黑客,而不是隻需要一個UTF-8語言環境開始或使用'iconv'(乾淨/便攜的方式)? –