gpt4 book ai didi

C++ 将非英文文本写入文件

转载 作者:太空狗 更新时间:2023-10-29 21:37:06 26 4
gpt4 key购买 nike

我看到了很多关于这个主题的问题,但没有一个对我有帮助。

假设我有一个字符串“հայեր”或“русский”(wchat_t*wstringLPTSTR 或其他)。

现在我想创建一个输出文件“res.txt”并写下字符串。在尝试编写它时,我最终什么也没写,“?”和文件中的一些任意数字。

有人可以建议我一种如何保留非英语字符串以及如何将它们正确写入文件的方法吗?

谢谢。

最佳答案

甚至在开始创建包含非拉丁字符的文本文件之前,您必须确定要为您的语言环境使用哪种编码。

例如,如果您的区域设置使用 UTF-8 编码,则字符串“русский”的编码必须与您的区域设置为 KOI8-R 时完全不同.

UTF-8 中的字符串“русский”由八位字节(字节)表示:d1 80 d1 83 d1 81 d1 81 d0 ba d0 b8 d0 b9。对于 KOI8-R 语言环境,等效的八位字节是 d2 d5 d3 d3 cb c9 ca

国际化很难。

在大多数情况下,您可以将 C++ 库的宽字符流与 unicode 一起使用:

#include <iostream>
#include <locale>

int main()
{
std::locale::global(std::locale(""));
std::wcout << L"\u0440\u0443\u0441\u0441\u043a\u0438\u0439" << std::endl;
return 0;
}

希望此输出在您的平台上是“русский”。如果可行,这可能是阻力最小的路径,但您必须查找每个字符的 unicode 值。

新的 C++ 标准也支持 UTF-8,但这里的答案是让您花一些时间了解语言环境、unicode 和国际化的一般概念。如果不完全了解所有这些事情是如何工作的,就很难正确地做到这一点。

关于C++ 将非英文文本写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38436442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com