War*_*ios 5 c# encoding deserialization
我想将代表 RESTful Web 服务响应的 JSON 文件反序列化为相应的类。我正在使用
System.Text.ASCIIEncoding.ASCII.GetBytes(ResponseString)并在Microsoft Docs上阅读,出于安全原因,使用 UTF-8 编码而不是 ASCII 更好。
现在我有点困惑,因为我不知道这两者之间的真正区别(关于安全性)。谁能告诉我使用 UTF-8 而非 ASCII 进行反序列化的真正实际优势是什么?
最终,编码器的目的是取回您想要获得的数据。ASCII 只定义了一个很小的 7 位值范围;任何未处理的内容,您都可以取回垃圾——或者?,从包含e?v?e?n 的有效载荷中取回垃圾??r?e?m?o?t?e?l?y? ?有趣的??文本?.
现在; 当您的应用程序获取无法处理的数据时会发生什么?我们不知道,当您获得无法处理的有效负载时,它确实很可能会导致安全问题。
如果您无法正确存储和显示客户的姓名等(或由于从右到左的标记而向后打印他们的姓名),那么坦率地说,在这个互联的世界中,这也很尴尬。世界上大多数人每天都在使用 ASCII 以外的东西。
由于 UTF-8 是 ASCII 的超集,而 UTF-8 基本上赢得了编码战争:您不妨直接使用 UTF-8。