打印大于0x7f的ASCII字符[英] printing ASCII character greater than 0x7f

问题描述

我在我的项目中遇到了一种情况,我用
读取了一个文本文件一些字符大于十六进制 0x7f.

我需要将字符(0xE0)写入新文件作为例外.然而当
我试图通过"Console.Write"来写这个.或"filestream.Write"看来
值改变.大部分输出文件都是文本模式.

如果我以二进制模式查看原始文件,我会看到我拥有的字符
问题为"e0 00";但是当我重写它时,我得到了"C3 A0".

我只是无法在我的输出文件中重现读取的信息.有吗
如何做到这一点,如果是的话怎么做?

推荐答案

好吧,ASCII 没有在此之上定义任何字符.你需要知道
文件的代码页,并使用正确的编码 - via (for
示例)Encoding.GetEncoding(int codepage) [并将此编码传入
无论您使用的是哪个 StreamReader 等].

否则,将发生翻译.以及它们是否代表你的
原始数据是任何人的猜测.

Marc

可以找到代码页吗?有没有好的参考来源?

"马克·格拉维尔"写道:
好吧,ASCII 没有在此之上定义任何字符.你需要知道
文件的代码页,并使用正确的编码 - via (for
示例)Encoding.GetEncoding(int codepage) [并将此编码传入
无论您使用的是哪个 StreamReader 等].

否则,将发生翻译.以及它们是否代表你的
原始数据是任何人的猜测.

Marc

6 月 9 日下午 4:10,auldh <au...@discussions.microsoft.com 写道:
有没有找到代码页?有没有好的参考来源?
确定文件的代码页没有硬性规定.
单个文件(即字节序列)可能是有效的(但带有
不同的含义)用于几个不同的代码页.

乔恩

本文地址:https://www.itbaoku.cn/post/1050748.html