【发布时间】:2011-10-01 21:32:12
【问题描述】:
我说得不好,所以我只陈述事实。
情况: 我的 C++ 程序将扩展的 ascii 字符输出到文本文件。
问题: 当我用记事本打开我的文本文件时,它会错误地显示这些字符。 (我使用的是 Windows XP)
结论: 如果我不得不猜测,我会说记事本使用错误的编码保存我的文件。有没有办法修复它,以便我的程序将正确的输出保存到文本文件中?
代码片段:
char box[] = {
201, 205, 187,
186, 32, 186,
200, 205, 188
};
当我outputFile << box[0] 时,我的预期结果是“╔”。相反,记事本显示一个“É”。
预期输出:
╔═════╗
║1. ║
║ ║
║ ║
╚═════╝
记事本输出:
ÉÍÍÍÍÍ»
º1. º
º º
º º
ÈÍÍÍÍͼ
编辑:好的。我现在明白我的错误了。记事本使用 ANSI 编码。为什么当我运行我的程序并将其 cout 到屏幕时,它显示为“╔”?我正在使用 Dev-C++ 编写程序——这是否意味着我使用的是过时的编码? C++ 中是否有任何方法可以更改我使用的字符编码?
【问题讨论】:
-
你对写字板有同样的看法吗?
-
把你的时间机器设置到 1990 年,你会是金子
标签: c++ ascii notepad++ fstream