在 Windows 控制台中正确显示 UTF-8 字符
使用传统方法在 Windows 控制台中显示 UTF-8 字符的许多尝试均失败正确渲染扩展字符。
失败的尝试:
使用 MultiByteToWideChar() 和 wprintf() 的一种常见方法被证明是无效的,只留下 ASCII 字符可见。此外,使用 SetConsoleOutputCP() 将控制台输出代码页设置为 CP_UTF8 并直接使用 ASCII 字符写入仍然会导致字符损坏。
成功方法:
最终,三种方法证明成功:
CP_UTF8 失败的原因:
CP_UTF8 的根本问题是由于控制台没有充当接受字节流的典型文件。相反,控制台 API 以离散单位处理数据,导致在单独调用中传输时多字节字符被错误解释。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3