轉換爲ANSI可能會導致代碼頁出現問題,因此在許多情況下不可接受。這裏是保存unicode字符串爲Unicode文本文件中的函數:
void WriteUnicodeStringToFile(const CString& str, LPCWSTR FileName)
{
HANDLE f = CreateFileW(FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (f == INVALID_HANDLE_VALUE) return; //failed
DWORD wr;
unsigned char Header[2]; //unicode text file header
Header[0] = 0xFF;
Header[1] = 0xFE;
WriteFile(f, Header, 2, &wr, NULL);
WriteFile(f, (LPCTSTR)str, str.GetLength() * 2, &wr, NULL);
CloseHandle(f);
}
使用:
CString str = L"This is a sample unicode string";
WriteUnicodeStringToFile(str, L"c:\\Sample.txt");
記事本明白Unicode文本文件。
文本文件有一個規範。你需要哪種格式的結果文件?誰將使用該文件?您可能不應該將TCHAR寫入文件;你應該明確編碼(UTF-16,UTF-8,ANSI,...)。 – tenfour
我會用記事本讀取文件。格式?只是一些接一個的路線。我希望能夠在記事本中打開文件,而不管項目的編碼如何。這是不可能的還是我可以嗎? –
你想使用什麼編碼? UTF-16? UTF8? ANSI? –