在 .NET 中,为什么不是这样:
Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(x))
返回任意字节数组的原始字节数组x
?
It is 提及 https://stackoverflow.com/a/3946274/601758回答另一个问题,但回复者没有解释原因。
首先,正如 watbywbarif 提到的,您不应该使用==
,那是行不通的。
但即使你正确地比较了数组(例如通过使用SequenceEquals()
或者只是通过观察它们),它们并不总是相同的。可能发生这种情况的一种情况是x
是无效的 UTF-8 编码字符串。
例如,1 字节序列0xFF
不是有效的 UTF-8。那么什么是Encoding.UTF8.GetString(new byte[] { 0xFF })
返回?它是 �、U+FFFD、替换字符。当然,如果你打电话Encoding.UTF8.GetBytes()
对此,它不会给你回报0xFF
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)