Windows 7 是否有 std::locale “.utf8”的替代品? wofstream.imbue(std::locale (".utf8")) 在 Windows 7

问题描述

我的代码在 Windows 10 下运行良好,但昨天我尝试在 Windows 7 下运行它。 必须将 ucrtbase.dll 添加到程序目录,否则程序在启动时崩溃。 以为现在一切都很好..但发现日志文件和其他一些文件总是空的。 我不使用的文件 .imbue(".utf8") 不是空的并且填充了预期的信息 我知道 Windows 7 的 UTF8 有问题,我花了几个星期前为语言环境遇到的问题找到了一些可能的修复方法......但它总是有一个新问题。这真的让我筋疲力尽。而现在,我只是找不到任何解决此问题的方法,所以我真的希望能在这里找到帮助

以下是一些无法在 Windows 7 上正常工作的代码示例

int wmain(int argCount,wchar_t* argValues[])
{
    UNREFERENCED_ParaMETER(_setmode(_fileno(stdout),conhelper::_O_U16TEXT));
    UNREFERENCED_ParaMETER(_setmode(_fileno(stdin),conhelper::_O_U16TEXT));
    UNREFERENCED_ParaMETER(_setmode(_fileno(stderr),conhelper::_O_U16TEXT));

    _wsetlocale(LC_ALL,L".utf8");
    std::locale locUTF8(".utf8");
    std::wofstream master;
    master.imbue(locUTF8);
    master.open(L"woof.txt",std::ios::trunc);
    master << L"Are you gonna work properly in this life or at least in another one... please..";
    master.close();


    return 69;

}

wof.txt 中 windows 10 下的输出 - “你这辈子还是至少下辈子能好好工作……拜托……”

wof.txt 中 windows 7 下的输出 - ""

使用 utf8 会导致某些输出预计使用不同的语言,例如俄语。 如何让我的程序在win7、win10或其他windows下按预期运行?

如果我写的东西很难理解,我不是母语者,我很抱歉,这是我第一次尝试在 stackoverflow 上提问

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...