文件输出到记事本.txt
File output to Notepad .txt
我不能很好地表达,所以我就陈述事实了。
情况:我的c++程序输出扩展ascii字符到一个文本文件。
问题:当我用记事本打开我的文本文件时,它不正确地显示这些字符。(我用的是Windows XP)
结论:如果要我猜的话,我会说Notepad使用错误的编码保存了我的文件。是否有一种方法来修复它,所以我的程序保存正确的输出到文本文件?
代码片段:
char box[] = {
201, 205, 187,
186, 32, 186,
200, 205, 188
};
当我outputFile << box[0]
时,我的预期结果是"。相反,记事本显示"É"。
╔═════╗
║1. ║
║ ║
║ ║
╚═════╝
记事本输出:
ÉÍÍÍÍÍ»
º1. º
º º
º º
ÈÍÍÍÍͼ
编辑:Ok。我现在明白我的错误了。记事本使用ANSI编码。为什么当我运行程序并将其显示到屏幕上时,它显示为"?我正在使用dev - c++来编写程序-这是否意味着我正在使用过时的编码?在c++中有什么方法可以改变我使用的字符编码吗?
你们在"扩展ASCII"中使用的方框绘图字符已经过时了。默认情况下,记事本可能使用Latin-1 (ISO-8859-1)编码,它表示一组不同的字符。
这里有一个递归的解决方案:
- 选择上面显示正确输出的框,并将其复制到剪贴板
- 打开记事本
- 粘贴到记事本(它看起来是正确的)
- 保存记事本文件(选择Unicode或UTF-8编码)并分析它以找出需要写什么才能得到输出
我相信你可以从上面猜到,要获得这些字符,你必须编写一个Unicode文本文件。
更复杂的文本编辑器(如notepad++)允许您选择编码。UTF-8将显示您期望的符号。
如果您想在编辑器中看到这些线条绘制字符,您需要选择Windows 终端字体。
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 如何修复此iFile以将.txt输出到控制台
- 无法打开.txt文件
- CMakeLists.txt中的命名空间表示法
- Arduino从Txt读取整数
- 如何使用CLion在Mac上创建一个新的.txt文件
- 如何拆分文件中.txt字母并使用c ++使用数组进行扑克?
- 使用fstream对txt文件中的数字进行循环
- Visual Studio在尝试读取resource.txt文件时崩溃
- 更正 CMakeList.txt 用于谷歌测试的文件?
- 如何从txt文件中读取多个不同长度的数组?
- 在一次迭代中从 txt 文件中读取多行
- 将生成文件转换为 CMakeLists.txt等效项
- 使用循环将多行写入.txt
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- 使用记事本C++打开 txt 文件时无需等待
- 文件输出到记事本.txt