【发布时间】:2011-06-02 08:02:19
【问题描述】:
假设我有一个字节数组,我使用Encoding.ASCII.GetString() 将字节转换为字符串。现在前几个字节将包含实际值,但其余的都将具有 0 的值。获取字符串后,当我在 WPF 表单上显示它时,有一些不可打印的字符。如何删除这些不可打印的字符。一种方法是遍历数组并只考虑不包含 0 的索引,但我也可以使用 Unicode 编码,即Encoding.Unicode.GetString()。
解决问题的最通用方法是什么。
【问题讨论】:
-
你知道Byte数组的实际编码吗?我想象输入数组是中文的,比如UTF8编码。
-
@tofutim:是的,我知道正在使用的实际编码,但正如我所提到的,它会因场景而异。
-
您是否为编码未知而选择 ASCII 提供保险?从外语转换可能会导致钻石和心形等。你的意思是去掉那些奇怪的 ASCII 非字符,比如哔哔声吗?换行和制表符怎么样?
-
@tofutim:没有换行符和制表符。它将是一些字符,字节数组的其余部分将为零。如果只是 ASCII 编码,我只会寻找第一个零。
标签: c# string encoding byte non-printing-characters