Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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
C# 将字节[]转换为字符串_C#_.net - Fatal编程技术网

C# 将字节[]转换为字符串

C# 将字节[]转换为字符串,c#,.net,C#,.net,如何将字节数组转换为字符串?我需要获取原始内容,例如“96=A8=FC-=A8=FE”,但当我使用say Encoding.UTF8.GetString(bytes)时,它返回“96”��-��". 谢谢!您可能希望使用ASCII编码,而不是UTF8。您实际上需要每个字节的十六进制表示形式的格式化字符串。问题将向您展示如何获取字符串,您可以更改该代码以在字节之间添加任何“中间”“您需要格式化。我认为您误解了字符串的内容。最接近“原始内容”的方法是使用编码。Unicode-.NET在内部使用UTF

如何将字节数组转换为字符串?我需要获取原始内容,例如“96=A8=FC-=A8=FE”,但当我使用say Encoding.UTF8.GetString(bytes)时,它返回“96”��-��". 谢谢!

您可能希望使用ASCII编码,而不是UTF8。

您实际上需要每个字节的十六进制表示形式的格式化字符串。问题将向您展示如何获取字符串,您可以更改该代码以在字节之间添加任何“中间”“您需要格式化。

我认为您误解了字符串的内容。最接近“原始内容”的方法是使用
编码。Unicode
-.NET在内部使用UTF-16,因此转换为UTF-16实际上只是将内存内容从字符串复制到字节数组

现在,回到你的问题,你有什么数据,它代表什么,为什么?文本数据是字符。二进制数据基本上是数字。你必须在两者之间有一个映射,这就是编码

我有一个可能对你有所帮助的计划,但我强烈怀疑你需要在取得任何进展之前后退一步

如果您试图将字节数组转换为这些字节的十六进制字符串表示形式,您可以使用,但我不会将其描述为“原始”转换


编辑:好的,现在我们有了上下文,回答起来容易多了。你看到的是编码。电子邮件应该指定引用的可打印文件的编码,因此当您解码QP编码时,应该使用该编码。如果您当前未存储原始电子邮件的内容编码,则应立即开始存储…

您也可以使用Convert.ToBase64CharArray方法

Convert.ToBase64CharArray(字节[],Int32,Int32,字符[],Int32)

转换8位无符号字符串的子集 将整数数组转换为等价子集 对Unicode字符数组进行编码 以64位为基数。参数 将子集指定为图形中的偏移 输入和输出数组,以及 输入数组中的元素数 皈依


没有编码的字符串是不存在的:记住ASCII仍然是一种编码!是啊,你说得对,斯图希米特!没有“不编码”这回事。。我的错……我认为你让他退后一步,重新考虑这个问题是对的。不过,我最好的猜测是,他希望这些编码的十六进制值能够转换成可以在他的机器上看到的字符。如果是这样的话,他可能需要从一些本地代码页映射到Unicode。这只是编码。默认情况下,如果这真的是他所期望的:)我需要做的是解析电子邮件的内容。在解析之前,我们将内容保存在数据库中。该列以字节[]返回给我。我的主要问题是当电子邮件包含分数时,例如“96”⅜-⅞". 分数部分被转换为十六进制,但消息的其余部分是相同的。我已经有了一个代码来处理转换(使用正则表达式),但我不知道如何从返回的列中获取“96=A8=FC-=A8=FE”,该列以字节[]。也许我解决这个问题的方法不令人满意。任何建议都将不胜感激。谢谢!让Jon的答案更复杂的是,您不仅需要检查内容编码是否为QP,还需要检查将其解释为什么字符集。ASCII 0-127或多或少是一致的,但0xA8是否映射到小数字符完全取决于字符集。坦率地说,这不是一个需要解决的小问题;您需要对RFC 2822及其涉及的所有内容有更深入的了解。我是否可以建议您放弃并使用一个像样的库,如Chilkat的s/MIME解码器?再次感谢Jon Skeet的输入以及与您分享有关unicode和.net的文章的链接——确实如此真的很有帮助!谢谢亚当!这也很有帮助。