我正在编写Hadoop / HBase作业。我需要将Java String
转换为字节数组。 Java String.getBytes()
和Hadoop Bytes.toBytes()
之间是否存在差异?
答案 0 :(得分:22)
根据its documentation Bytes.toBytes()
使用UTF-8将参数转换为byte[]
。
String.getBytes()
(without arguments)会使用平台默认编码将String
转换为byte[]
。该编码可能因操作系统和用户设置而异。通常应避免使用该方法。
您可以使用String.getBytes(String)
(或the Charset
variant)指定要使用的编码。
答案 1 :(得分:8)
读取Javadoc,看起来String.getBytes()使用默认编码返回byte[]
,而Bytes.toBytes()使用byte[]
返回UTF-8
这可能是一回事,但可能不是。
如果你想知道什么,它总是有用的阅读Javadoc。 ;)