如何把txt 批量从utf8转换为ascii,最好有工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把txt 批量从utf8转换为ascii,最好有工具相关的知识,希望对你有一定的参考价值。

参考技术A 文本网页编码批量转换工具
网页文件、文本文件编码批量转换,可以批量将文本类文件批量转换为utf-8 ansi(gb2312) unicode等编码。

http://www.yuneach.com/soft
参考技术B 不怕出乱码么?U8 的编码范围可比ANSI大……如果确认都在ANSI范围内,可以用C#写一个,几行就搞定。追问

(⊙o⊙)哦,谢谢你的回答了

参考技术C 比如 文件批量处理百宝箱V8.0 主界面-更多功能-拓展界面-文本码制转换中的功能。本回答被提问者采纳

从 UTF8 转换为 ASCII

【中文标题】从 UTF8 转换为 ASCII【英文标题】:Conversion from UTF8 to ASCII 【发布时间】:2011-05-20 03:04:34 【问题描述】:

我从以 UTF8 编码存储的 XML 文件中读取了一个文本。 C# 完美读取它,我使用调试器进行了检查,但是当我尝试将其转换为 ASCII 以将其保存在另一个文件中时,我得到一个 ?字符在有冲突的地方出现。例如,这段文字:

string s = "La introducción masiva de las nuevas tecnologías de la información";

将保存为

"La introducci?n masiva de las nuevas tecnolog?as de la informaci?n"

我不能只用它们的拉丁语 (a, e, i, o, u) 元音替换它们,因为西班牙语中的某些单词会失去意义。我已经尝试过this 和this 的问题,但没有成功。所以我希望有人可以帮助我。第二个中选择的答案甚至没有编译...!

如果有人想看看,我的代码是这个:

private void WriteInput( string input )

   byte[] byteArray = Encoding.UTF8.GetBytes(input);
   byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
   string finalString = Encoding.ASCII.GetString(asciiArray);

   string inputFile = _idFile + ".in";
   var batchWriter = new StreamWriter(inputFile, false, Encoding.ASCII);
   batchWriter.Write(finalString);
   batchWriter.Close();

【问题讨论】:

【参考方案1】:

这些字符在 ASCII 中没有映射。查看 ASCII 表,例如 Wikipedia's,以验证这一点。您可能对 Windows 1252 编码或“扩展 ASCII”感兴趣,因为它有时被称为,它具有许多重音字符的代码点,包括西班牙语。

var input = "La introducción masiva de las nuevas tecnologías de la información";
var utf8bytes = Encoding.UTF8.GetBytes(input);
var win1252Bytes = Encoding.Convert(
                Encoding.UTF8, Encoding.GetEncoding("windows-1252"), utf8bytes);
File.WriteAllBytes(@"foo.txt", win1252Bytes);

【讨论】:

@David:使用上面的测试用例,对我来说非常适合。确保您的代码中没有 ASCII 编码 (Encoding.ASCII)。 对不起!再次测试并像魅力一样工作......现在我知道为什么你有 18.3K 代表了! ;) 如果可以的话,我会添加更多的 +1! :)【参考方案2】:

做不到。 ASCII 没有这些字母,所以你能做的最好的就是对它们进行 URL 编码或 unicode-escape-encode。

【讨论】:

怎么回事?如果 ASCII 没有这些字母,我如何使用 Notepad++ 将编码从 UTF8 更改为 ASCII 并像魅力一样工作? 因为 Notepad++ 并没有真正使用 ASCII。它使用像 CP1250 这样的东西,确实有这些字母。 Notepad++ 转换为 Win-1252 代码页(拉丁文),在表的上半部分有重音符号(字符代码 128+)。但是,这不是 ASCII,而是 ASCII 的扩展。 ASCII 仅定义 0-127 范围内的字符。同时,在具有不同代码页的机器上打开该文件,将显示不同的字符来代替重音字符。例如,在 Win-1251 中,您会看到一些西里尔字母。

以上是关于如何把txt 批量从utf8转换为ascii,最好有工具的主要内容,如果未能解决你的问题,请参考以下文章

如何将许多ANSI格式的txt文档批量转换成UTF8格式?

如何在 c# 中将字符串从 utf8 转换(音译)为 ASCII(单字节)?

请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。

如何使用C语言将汉字转换成UTF8编码,如将“你好”转成:%E4%BD%A0%E5%A5%

java实现 批量转换文件编码格式为UTF8

如何批量转换文本文档编码