我最近对制作/模拟 80 年代基于文本的 rpgs 产生了兴趣,比如 Rogue 及其衍生品,它们的特色图形是由扩展的 ASCII 字符组成的。因此,在为这些游戏创建和打印图形到控制台时,我认为我应该执行以下操作: 1)在记事本等文本编辑器中设计关卡等;2) 将这些文件保存为 Unicode 编码的 txt 文件,因为它们包含扩展的 ASCII;3)让我的游戏程序从这些文件中读取图形并将它们逐字打印到控制台。这对我来说似乎是一个不错的计划,除了有一个问题。
对于我的生活,我无法让程序正确输出扩展的 ASCII 字符。通常发生的情况是,程序似乎将文件中的每个单个字符作为一对 ASCII 字符读取。例如,字符 '☺' 将输出为“&;”,或类似的东西。
在 C++ 和/或 C# 中,如何正确地将 Unicode 编码的 txt 文件中的扩展 ASCII 字符逐行读取到程序中并将这些行输出到控制台窗口?
(我的意思是,我想我可以制作一个翻译函数,接收损坏的字符对,如“&;”,并将其转换回单个 ASCII 字符,如“☺”,通过一个大的 ol' if-then语句或一些巧妙推导的数学公式,但我不仅很懒,我也非常想知道 C++/C# 如何处理带有非 ANSI 编码的 txt 文件的文件 I/O,如果它们确实有这样的机制实施的!)