将二进制数据转换为Windows-1252编码是否可能出现数据丢失
本文关键字:数据 编码 转换 二进制 Windows-1252 是否 | 更新日期: 2023-09-27 18:21:46
我知道将二进制数据转换为文本格式的最佳方法是使用base64编码。UTF-8可能会导致丢失。但当我对此进行调查时,我发现Windows-1252编码似乎不会导致数据丢失。
我在这里的博客文章中提供了更多的上下文。
最后,我提供了一些为什么我仍然不将二进制数据存储为Windows-1252字符串的原因。但我很好奇是否存在我没有考虑过的实际数据丢失情况。
您不应该将二进制数据放在字符串中,因为二进制数据可以包含值低于32的字节。这与字符串的编码无关。
我不确定你从哪里得到的"UTF-8是有损的,但CP1252不是"。但我不确定我是否想知道。
实际上,如果你考虑到你没有将binary data
转换为CP1252
,但在C#
中你将binary data
转换为CP1252
到UTF-16
,那么问题是CP1252
->UTF-16
->CP1252
是否能保证没有多态突变。
.net文本编码器在UTF-16
->CP1252
上做得最好,这听起来最多也不确定,虽然它可能测试得很好,但在很多情况下,你可以用中间的UTF-16
字符串做任何事情来保证不会丢失数据,而且它的效率远低于字节数组。