java - 什么是字符串值中的编码器?
问题描述
我正在阅读一个 CSV 文件,使用com.opencsv.CSVReader
如下所示
String[] headers = csvReader.readNext();
标题的值如下屏幕截图所示:
这里的编码器是什么(以黄色突出显示)?
为什么第一个索引的值为 1,所有其他索引的值为 0?
解决方案
官方的回应是“不关你的事”,因为它是一个私有成员 :P 这意味着它很可能是特定于实现的,并且在其他供应商的 JVM 版本中找不到。
实际响应可以在该类的源代码中找到String
用于编码字节的编码标识符。此实现中支持的值是
LATIN1 UTF16
该字段受 VM 信任,如果 String 实例为常量,则该字段受常量折叠的影响。构建后覆盖该字段会导致问题。
至于为什么第一个不同,这取决于每个String
实例的实例化方式。默认值的选择取决于 JVM 设置的参数。与默认值不同的值表明它String
是从另一个String
或字节数组构建的。
在第一种情况下,这意味着原始字符串coder
本身具有该值。
在第二种情况下,它取决于调用类的decode
方法的结果,该方法StringCoding
返回一个对象,其code
值取决于我上面谈到的初始参数(JVM设置的那个)和传递给构造函数的编码的String
。
推荐阅读
- asp.net - 表单项过多时的 HTTP 400
- java - 将getText转换为提取的子字符串为整数值(java)
- python - 如何将 np.corrcoef() 矩阵映射回原始数据矩阵?
- spring-boot - 如何在 Spring Boot 中确定 GetMapping 方法的类型?
- python - 无法从 Lambda 层 AWS 导入函数
- reactjs - 未处理的拒绝(错误):无效的钩子调用 React Stripe Fpx
- javascript - 无效:回调 URL 的语法不正确。示例回调 URL 在 paytm 集成 React native 中为“https://merchant.com/calback/”
- c# - 如何表示同一类型的父属性和多个子属性之间的关系?
- php - 尝试从数据透视表中查找数据时给出 Null
- 3d - 在保持玩家全局方向的同时改变场景,3d