C# 使用ASCII编码将umlauts保存在文本文件中
我的代码必须保存字符串,例如带有C# 使用ASCII编码将umlauts保存在文本文件中,c#,encoding,C#,Encoding,我的代码必须保存字符串,例如带有System.IO.File.writealText的“günther”(文件路径,“günther”,Encoding.ASCII)但却有了G?nther。我做了一些研究,但还不知道如何解决这个问题。似乎没有办法,因为只有ASCII码。但我需要ASCII格式的文本文件,并带有umlaut“ü”。 有什么方法可以做到这一点吗?正如您所说:ASCII中没有umlaut。 如果无法将文件更改为UTF-8,我能想到的唯一可能的方法是将字符串中的“ü”替换为,例如“ue”
System.IO.File.writealText的“günther”(文件路径,“günther”,Encoding.ASCII)代码>但却有了G?nther。我做了一些研究,但还不知道如何解决这个问题。似乎没有办法,因为只有ASCII码。但我需要ASCII格式的文本文件,并带有umlaut“ü”。
有什么方法可以做到这一点吗?正如您所说:ASCII中没有umlaut。
如果无法将文件更改为UTF-8,我能想到的唯一可能的方法是将字符串中的“ü”替换为,例如“ue”。?
是字符与编码不匹配时使用的错误字符。为什么不使用UTF8,顺便说一下,这是默认值?如果您坚持使用单字节代码页,请使用与Latin1相对应的Windows-1253
,因为我相应的ERP系统需要ASCII码。我会试试。你的ERP肯定不需要7位ASCII码,除非它是在90年代早期开发的。否则你的公司就不会买了。很可能他们指的是拉丁语。另一方面,自90年代以来,所有ERP都使用Unicode。你想做什么?你的目标是什么ERP?我怀疑实际的需求是将文本文件导入其中。您可以指定在所有ERP中导入时要使用的编码。即使不能,ERP也将使用与机器的区域设置相对应的编码。这是通过,而不是Encoding.ASCII
@paulvoelker返回的。这是自90年代以来众所周知的,甚至是Windows95指南的一部分。Windows NT和更高版本2000对字符串使用Unicode。当提到ASCII
时,隐含的代码页是系统(以及以后的用户)的区域设置。永远不要使用7位ASCII。即使是DOS也没有使用这个选项,当人们说ASCII时,他们很少指7位代码页。拉丁语1支持umlauts@goetterkomplex,Yep是唯一的方法。@PanagiotisKanavos:但是对拉丁语1使用ASCII只是为了避免混淆(拉丁语1不是windows“ANSI”(与ANSI无关)。建议的编码后来被改为“拉丁语15”(包括欧元符号)。