Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASCII扩展为C#字符串_C#_Ascii - Fatal编程技术网

ASCII扩展为C#字符串

ASCII扩展为C#字符串,c#,ascii,C#,Ascii,如何在C#中生成字符串以接受不可打印的ASCII扩展字符,如•,因为当我尝试在字符串中放入•时,它只会给出一个空格或null。试试这个。。 将这些字符转换为字符串和folows string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter }); 现在,等效字母包含正确的字符串。 我试着用这个作为欧元符号,效果很好。试试这个。。 将这些字符转换为字符串和folows string equivalen

如何在C#中生成字符串以接受不可打印的ASCII扩展字符,如•,因为当我尝试在字符串中放入•时,它只会给出一个空格或null。

试试这个。。 将这些字符转换为字符串和folows

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)该术语被询问者误用/误解。