字符串值中的Coder是什么?

人气:66 发布:2023-01-03 标签: string java opencsv java-11 csvreader

问题描述

我正在阅读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的构造函数的编码。

17