我说不好,所以我只陈述事实。
情况: 我的 C++ 程序将扩展的 ascii 字符输出到文本文件。
问题: 当我用记事本打开我的文本文件时,它无法正确显示这些字符。 (我使用的是 Windows XP)
结论: 如果非要我猜的话,我会说记事本使用错误的编码保存我的文件。有没有办法修复它以便我的程序将正确的输出保存到文本文件?
代码片段:
char box[] = {
201, 205, 187,
186, 32, 186,
200, 205, 188
};
当我 outputFile << box[0]
,我的预期结果是“╔”。相反,记事本会显示一个“É”。
预期输出:
╔═════╗
║1. ║
║ ║
║ ║
╚═════╝
记事本输出:
ÉÍÍÍÍÍ»
º1. º
º º
º º
ÈÍÍÍÍͼ
编辑: 好的。我现在明白我的错误了。记事本使用 ANSI 编码。为什么当我运行我的程序并将其输出到屏幕时,它显示为“╔”?我正在使用 Dev-C++ 编写我的程序 - 这是否意味着我使用的是过时的编码? C++ 中有什么方法可以更改我使用的字符编码吗?
最佳答案
您在“扩展 ASCII”中使用方框绘图字符已过时。默认情况下,记事本可能使用 Latin-1 (ISO-8859-1)编码,代表一组不同的字符。
关于c++ - 文件输出到记事本.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623089/