當使用fstream將這些符號打印到文件時,我會得到一個混亂的結果。 使用:C++ fstream不要打印符號ρ和Δ以正確存檔
file << "Δ" << endl;
能正常工作在Linux中,但是當我compilled用於Windows它不工作。
是否有一種在Windows中進行此項工作的特定方法?
當使用fstream將這些符號打印到文件時,我會得到一個混亂的結果。 使用:C++ fstream不要打印符號ρ和Δ以正確存檔
file << "Δ" << endl;
能正常工作在Linux中,但是當我compilled用於Windows它不工作。
是否有一種在Windows中進行此項工作的特定方法?
以下應該適用於MSVC2010。使用std::codecvt_utf8_utf16隱蔽寬字符爲UTF-8字節流:
#include <fstream>
#include <codecvt>
int main()
{
std::wofstream file("myfile", std::ios::out | std::ios::binary);
file.imbue(std::locale(file.getloc(), new std::codecvt_utf8_utf16<wchar_t>));
file << L"Δ" << std::endl;
}
我不認爲的Windows控制檯支持Unicode字符 –
@TonyTheLion:該OP被寫入文件。 –
你檢查過使用過的編碼嗎?在Linux中,它可能是UTF-8,但在Windows中,如果沒有BOM,它可能會默認爲您的本地代碼頁。 – Caladan