ASCII扩展为C#字符串
如何在C#中生成字符串以接受不可打印的ASCII扩展字符,如•,因为当我尝试在字符串中放入•时,它只会给出一个空格或null。试试这个。。 将这些字符转换为字符串和folowsASCII扩展为C#字符串,c#,ascii,C#,Ascii,如何在C#中生成字符串以接受不可打印的ASCII扩展字符,如•,因为当我尝试在字符串中放入•时,它只会给出一个空格或null。试试这个。。 将这些字符转换为字符串和folows string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter }); 现在,等效字母包含正确的字符串。 我试着用这个作为欧元符号,效果很好。试试这个。。 将这些字符转换为字符串和folows string equivalen
string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter });
现在,等效字母包含正确的字符串。
我试着用这个作为欧元符号,效果很好。试试这个。。
将这些字符转换为字符串和folows
string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter });
现在,等效字母包含正确的字符串。
我试着用欧元符号,效果很好。.NET字符串是UTF-16编码的,不是扩展的ascii码(不管是什么)。只需向字符添加一个数字,就可以在UTF-16普通集合中为您定义另一个字符。如果您希望看到扩展ASCII编码中的基本字符,则需要将新计算的字母从您正在讨论的任何编码转换为UTF-16。请参阅:.NET字符串是UTF-16编码的,而不是扩展ascii(无论是什么)。只需向字符添加一个数字,就可以在UTF-16普通集合中为您定义另一个字符。如果您希望看到扩展ASCII编码中的基本字符,则需要将新计算的字母从您正在讨论的任何编码转换为UTF-16。请参阅:扩展ASCII就是将8个高位设置为不同值的ASCII 问题在于没有一个委员会批准扩展ASCII标准。有很多变体,没有办法告诉你正在使用什么 现在C#使用UTF-16编码,这将不同于您使用的扩展ASCII 您必须找到匹配的Unicode字符,并按如下方式显示它
string a ="\u2649" ; //where 2649 is a the Unicode number
Console.write(a) ;
或者,您可以找出您的文件使用的编码,并像这样使用它
例如,编码Windows-1252:
Encoding encoding = Encoding.GetEncoding(1252);
和UTF-16
Encoding enc = new UnicodeEncoding(false, true, true);
并使用
Encoding.Convert (Encoding, Encoding, Byte[], Int32, Int32)
详细信息是扩展ASCII只是ASCII,8个高位设置为不同的值 问题在于没有一个委员会批准扩展ASCII标准。有很多变体,没有办法告诉你正在使用什么 现在C#使用UTF-16编码,这将不同于您使用的扩展ASCII 您必须找到匹配的Unicode字符,并按如下方式显示它
string a ="\u2649" ; //where 2649 is a the Unicode number
Console.write(a) ;
或者,您可以找出您的文件使用的编码,并像这样使用它
例如,编码Windows-1252:
Encoding encoding = Encoding.GetEncoding(1252);
和UTF-16
Encoding enc = new UnicodeEncoding(false, true, true);
并使用
Encoding.Convert (Encoding, Encoding, Byte[], Int32, Int32)
详细信息是您需要在这里提供更多的上下文:您是创建字符串文字、从控制台读取字符串还是通过UI控件获取字符串?您能给出代码示例吗?为了澄清这个问题,若你们还并没有读过乔尔·斯波尔斯基的这篇文章,那个么一定要读一读:你们编辑过这篇文章吗?因为我回答了,但看起来不一样:/这不是加密。充其量,这是一种混淆。您需要在这里提供更多的上下文:您是在生成字符串文字、从控制台读取字符串还是通过UI控件获取它?您能给出代码示例吗?为了澄清这个问题,若你们还并没有读过乔尔·斯波尔斯基的这篇文章,那个么一定要读一读:你们编辑过这篇文章吗?因为我回答了,但看起来不一样:/这不是加密。充其量,这是一种模糊处理。你所做的只是扔掉原始字母的一部分(char!=byte),并用未指定的编码处理它。(Encoding.Default取决于配置)@Polity:我说这只是一种方式,我用它呈现了一些扩展ascii字符…这只是一个解决方案或上述问题。不,不是,由于编码,无法保证您的调用在QA的机器上也能正常工作。默认情况下取决于配置。您所做的只是将原始字母的一部分(char!=byte)扔掉,并使用未指定的编码进行处理。(Encoding.Default取决于配置)@Polity:我说这只是一种方式,我用它呈现了一些扩展ascii字符……这只是一个解决方案或上述问题。不,不是这样,也不能保证您的调用自编码后会在QA的机器上工作。默认值取决于配置的“扩展ascii”基本上是每个字符一个字节的文本编码,其中0-127字节的值与纯ASCII值具有相同的含义。(虽然从技术上讲,UTF-8在该字节范围内每个字符有1个字节,也可以被视为扩展ASCII)该术语被询问者误用/误解。“扩展ASCII”基本上是任何一个字节/字符的文本编码,其0-127字节值与纯ASCII值具有相同的含义。(虽然从技术上讲,UTF-8在该字节范围内每个字符有1个字节,也可以被视为扩展ASCII)该术语被询问者误用/误解。