如何把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,最好有工具的主要内容,如果未能解决你的问题,请参考以下文章
如何在 c# 中将字符串从 utf8 转换(音译)为 ASCII(单字节)?
请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。