为什么Java在将字节解码为字符串失败时不会抛出异常?

时间:2017-05-05 09:13:48

标签: java file-encodings

如果解码失败时有一些异常,那么我们可以尝试逐个检测文件编码。

但是我没有找到一种方法可以抛出一些例外,比如' UnicodeDecodeError'在python中,有一些特定的原因吗?

PS:当某些字节映射到未定义的字符时解码过程失败,因为大多数编码方案都留下了一些未编码的冗余码。

PPS:我问这个问题,因为我认为这是一个设计问题。我没有编码问题。但是当我想编写一些代码来自动检测文件编码时就像Vim(文本编辑器)那样,我发现这种设计会让事情变得困难。

1 个答案:

答案 0 :(得分:0)

任何字节序列只对字符串有意义,如果它们作为与您的用例相关的字符流有意义。

如果解释不适合您的用例,您希望Java做什么? 你会看到"垃圾"输出。但解码在技术上并没有失败。做到了?所以,它不能真正抛出任何异常。

您指定的编码可能不兼容。