相关疑难解决方法(0)

如何在C++中将文件编码格式设置为UTF8

我的软件的要求是包含导出数据的文件的编码应为UTF8.但是当我将数据写入文件时,编码总是ANSI.(我使用Notepad ++来检查这个.)

我目前正在尝试通过读取文件,将其转换为UTF8并将文本写入新文件来手动转换文件.

linestd::string
inputFilestd::ifstream
pOutputFileFILE*

// ...

if( inputFile.is_open() )
{
    while( inputFile.good() )
    {
        getline(inputFile,line);

        //1
        DWORD dwCount = MultiByteToWideChar( CP_ACP, 0, line.c_str(), -1, NULL, 0 );
        wchar_t *pwcharText;
        pwcharText = new wchar_t[ dwCount];

        //2
        MultiByteToWideChar( CP_ACP, 0, line.c_str(), -1, pwcharText, dwCount );

        //3
        dwCount = WideCharToMultiByte( CP_UTF8, 0, pwcharText, -1, NULL, 0, NULL, NULL );
        char *pText;
        pText = new char[ dwCount ];

        //4
        WideCharToMultiByte( CP_UTF8, 0, pwcharText, -1, pText, dwCount, …
Run Code Online (Sandbox Code Playgroud)

c++ winapi utf-8 character-encoding

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

character-encoding ×1

utf-8 ×1

winapi ×1