C# Unicode到ASCII

C# Unicode到ASCII,c#,unicode,ascii,C#,Unicode,Ascii,我有一个Unicode:¾Öœ 我需要将这个Unicode转换成ASCII。我尝试使用以下代码,但输出结果不正确。对于Unicode“¾”输出,答案是64 String as_pass = "¾àÖ‘œ"; li_passlen = as_pass.Length; byte[] asciiBytes = new byte[li_passlen]; asciiBytes = Encoding.ASCII.GetBytes(as_pass); 请帮助我解决这个问题您指的是所谓的“扩展”as

我有一个Unicode:
¾Öœ

我需要将这个Unicode转换成ASCII。我尝试使用以下代码,但输出结果不正确。对于Unicode
“¾”
输出,答案是64

String as_pass = "¾àÖ‘œ";

li_passlen = as_pass.Length;

byte[] asciiBytes = new byte[li_passlen];

asciiBytes = Encoding.ASCII.GetBytes(as_pass); 

请帮助我解决这个问题

您指的是所谓的“扩展”ascii,它是一组将常规7位ascii扩展1位(有时甚至更多)的编码。其中一种编码是iso-8859-1,这似乎是您需要的编码。因此,要获得您期望的结果,请执行以下操作:

asciiBytes = Encoding.GetEncoding("iso-8859-1").GetBytes(as_pass);

您指的是所谓的“扩展”ascii,它是一组将常规7位ascii扩展1位(有时甚至更多)的编码。其中一种编码是iso-8859-1,这似乎是您需要的编码。因此,要获得您期望的结果,请执行以下操作:

asciiBytes = Encoding.GetEncoding("iso-8859-1").GetBytes(as_pass);

您不能这样做,因为它们都不是ASCII字符。您期望的结果是什么?如果我将此Unicode放入在线ASCII转换器,它将生成正确的ASCII代码,但我不能将其与c一起使用,而不是我刚才尝试的c,但¾和ASCII 64之间的关系是什么?我什么也看不见。好吧,我想我明白你的意思了。您需要这样:
ascibytes=Encoding.GetEncoding(“iso-8859-1”).GetBytes(as_pass)不能,因为它们都不是ASCII字符。您期望的结果是什么?如果我将此Unicode放入在线ASCII转换器,它将生成正确的ASCII代码,但我不能将其与c一起使用,而不是我刚才尝试的c,但¾和ASCII 64之间的关系是什么?我什么也看不见。好吧,我想我明白你的意思了。您需要这样:
ascibytes=Encoding.GetEncoding(“iso-8859-1”).GetBytes(as_pass)
@Yasitha为了让大家明白这一点,人们通常会说ASCII,而不是指ASCII字符集或其单字符编码。说“扩展ASCII”的信息量更小,因为在处理字符编码时,只使用一个字符,而且要使用它,各方都必须知道它。所以,不管你把这些字节给谁,都要传递基本信息,即它们是iso-8859-1编码的文本。@Yasitha为了让大家明白这一点,人们通常说ASCII,而不是ASCII字符集或它的单字符编码。说“扩展ASCII”的信息量更小,因为在处理字符编码时,只使用一个字符,而且要使用它,各方都必须知道它。因此,无论您将这些字节提供给谁,都要传递基本信息,即它们是iso-8859-1编码的文本。