gpt4 book ai didi

java - Properties.load() 是否报告无效字节

转载 作者:行者123 更新时间:2023-11-29 05:46:33 25 4
gpt4 key购买 nike

Properties.load(InputStream) 方法是否报告其输入中的无效字节?

API 规范明确指出 InputStream 必须使用 ISO 8859-1 (Latin-1) 字符编码对文本进行编码。这不允许字节值 0x81-0x9F。因此,如果存在此类字节,它应该抛出一个 IOException(一个 CharacterCodingException 是理想的)。但是是吗?如果不是,它如何处理这些无效字节?

最佳答案

尽管规范中有声明,但所提供的实现将这些无效字节视为 Unicode 字符; 0x81-0x9F 范围内的字节将被解释为 C1 控制字符。 source code有这个:

 //The line below is equivalent to calling a
//ISO8859-1 decoder.
c = (char) (0xff & inByteBuf[inOff++]);

不管评论怎么说,这等同于调用 ISO8859-1 解码器。


编辑

实际上,它相当于调用一个 ISO-8859-1(注意连字符)解码器。所以有两种可能的解释:

  • 提供的实现有问题。
  • 规范 (API) 文档没有正确描述作者的意图;它应该说流使用 ISO-8859-1 编码。

关于java - Properties.load() 是否报告无效字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com