gpt4 book ai didi

c# - 使用 C# 将文本文件从 ANSI 转换为 ASCII

转载 作者:IT王子 更新时间:2023-10-29 04:40:55 24 4
gpt4 key购买 nike

我有一个 ANSI 编码的文件,我想将从文件中读取的行转换为 ASCII。

我如何在 C# 中执行此操作?


编辑:如果我使用“BinaryReader”怎么办BinaryReader reader = new BinaryReader(input, Encoding.Default);但是这个读者需要 (Stream, Encoding)但是“流”是抽象的!我应该在哪里放置他将从中读取的文件的路径?

最佳答案

从 ANSI 到 ASCII 的直接转换可能并不总是可行的,因为 ANSI 是 ASCII 的超集。

不过,您可以尝试使用 Encoding 转换为 UTF-8:

Encoding ANSI = Encoding.GetEncoding(1252);

byte[] ansiBytes = ANSI.GetBytes(str);
byte[] utf8Bytes = Encoding.Convert(ANSI, Encoding.UTF8, ansiBytes);

String utf8String = Encoding.UTF8.GetString(utf8Bytes);

当然,您可以用 ASCII 替换 UTF8,但这没有任何意义,因为:

  • 如果原始字符串不包含任何大于126的字节,那么它已经是ASCII
  • 如果原始字符串确实包含一个或多个字节 > 126,那么这些字节将丢失

更新:

为了响应更新后的问题,您可以像这样使用 BinaryReader:

BinaryReader reader = new BinaryReader(File.Open("foo.txt", FileMode.Open),
Encoding.GetEncoding(1252));

关于c# - 使用 C# 将文本文件从 ANSI 转换为 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com