问题描述
我正在阅读CSV文件,使用如下com.opencsv.CSVReader
String[] headers = csvReader.readNext();
标题的值如下图所示:
此处的编码器是什么(以黄色突出显示)?
为什么第一个索引的值为1,所有其他索引的值为0?
推荐答案
官方回复不关您的事,因为它是私有成员:p这意味着它很可能是特定于实现的,在其他供应商的版本中找不到。
可以在String类的source code中找到实际响应
用于对中的字节进行编码的编码的标识符。 此实现中支持的值为LATIN1 UTF16此字段受VM信任,并且受 如果字符串实例为常量,则为常量折叠。覆盖此内容 建好后的场地会造成问题。
至于为什么第一个不同,这取决于每个String是如何实例化的。缺省值的选择取决于JVM设置的参数。与默认值不同的值表示String是从另一个String或字节数组生成的。
在第一种情况下,它表示原始字符串本身具有该coder值。
在第二种情况下,它取决于调用StringCoding类的decode方法的结果,该方法返回的对象的code值取决于我上面提到的初始参数(由JVM设置的参数)和传递给String的构造函数的编码。