将二进制数据转换为Windows-1252编码是否可能出现数据丢失

本文关键字:数据 编码 转换 二进制 Windows-1252 是否 | 更新日期: 2023-09-27 18:21:46

我知道将二进制数据转换为文本格式的最佳方法是使用base64编码。UTF-8可能会导致丢失。但当我对此进行调查时,我发现Windows-1252编码似乎不会导致数据丢失。

我在这里的博客文章中提供了更多的上下文。

最后,我提供了一些为什么我仍然不将二进制数据存储为Windows-1252字符串的原因。但我很好奇是否存在我没有考虑过的实际数据丢失情况。

将二进制数据转换为Windows-1252编码是否可能出现数据丢失

您不应该将二进制数据放在字符串中,因为二进制数据可以包含值低于32的字节。这与字符串的编码无关。

我不确定你从哪里得到的"UTF-8是有损的,但CP1252不是"。但我不确定我是否想知道。

实际上,如果你考虑到你没有将binary data转换为CP1252,但在C#中你将binary data转换为CP1252UTF-16,那么问题是CP1252->UTF-16->CP1252是否能保证没有多态突变。

.net文本编码器在UTF-16->CP1252上做得最好,这听起来最多也不确定,虽然它可能测试得很好,但在很多情况下,你可以用中间的UTF-16字符串做任何事情来保证不会丢失数据,而且它的效率远低于字节数组。