c# - 转换包含不可打印字符的字符串

标签 c# encoding non-printable

我想为我的应用程序将包含不可打印字符的字节数组转换为字符串。当我转换回字节数组时,数组的内容应该保持不变,因为我发现 ASCII/Unicode/UTF8 并不总能给我正确的解决方案?

例如

 byte[] bytearray ={ 147, 35, 44, 18, 255, 104, 206, 72 ,69};

 string str = System.Text.Encoding.ASCII.GetString(bytearray);

 bytearray = System.Text.Encoding.ASCII.GetBytes(str);

在上面的例子中,我发现字节数组包含

{ 63, 35, 44, 18, 63, 104, 63, 72 ,69}.

请帮助我。

最佳答案

看看Convert.ToBase64String方法。它将字节数组转换为字符串。请记住,编码为字符串的数据将占用比原始字节数组更多的空间。

public static string ToBase64String(
    byte[] inArray
)

然后您可以使用 FromBase64String

将字符串解码回字节数组
public static byte[] FromBase64String(
    string s
)

关于c# - 转换包含不可打印字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009222/

相关文章:

c# - 如何扩展 WinForm 的 Dispose 方法?

c# - 在 C# 中使用 Language-Ext 返回 Either 的链式异步操作

c - Objective-C UTF-8 和 UTF-16 字符串(以字节表示)的差异

C# - 检测文件中的编码,使用找到的编码将更改写入文件

PERL 计算不可打印字符

c# - C# 中最好的 "curl -u"等价物

java - 通过 JDK 7 使用 AES 128 时出现问题

Excel VBA 中的正则表达式不正确地匹配扩展 ASCII 字符

javascript - 检测 JavaScript 中的不可打印字符

c# - 如何在 C# 项目中添加新的 win 窗体?