为什么Java的`String.toCharArray()`和`new String(char [])`方
发布时间:2020-12-15 04:36:04 所属栏目:Java 来源:网络整理
导读:为什么 Java的String.toCharArray()和新的String(char [])方法不接受字符集编码? 如果您正在使用byte [],则可以选择使用String.getBytes(charset)和新String(byte [],charset)指定字符集. 我想知道是否有关于char []和charset编码的东西我不明白. Javadocs
为什么
Java的String.toCharArray()和新的String(char [])方法不接受字符集编码?
如果您正在使用byte [],则可以选择使用String.getBytes(charset)和新String(byte [],charset)指定字符集. 我想知道是否有关于char []和charset编码的东西我不明白. Javadocs中没有任何特别的东西可以解释这种差异. 解决方法
这些方法不执行编码,它们只是表示String实例的内部状态的副本.
编码是将逻辑字形转换为数字表示的过程,数字表示是一系列字节.可以将String视为表示Unicode字形序列. String类具有API,可以将这些字形作为32位代码点访问,或者作为一系列使用UTF-16-BE编码的16位值(恰好是字符串的本机内部表示),或者作为一系列所选编码中的字节数.您只需要在最后一种情况下指定编码. 某些编码(如UTF-8)支持所有Unicode字符,而许多其他编码(如US-ASCII)仅支持一小部分.基于char []的API不允许指定不同的编码(UTF-16-LE或带有BOM的UTF-16),因为一个就足够了,并且促进一致性可以最大限度地减少编码不匹配造成的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |