【发布时间】:2011-11-25 03:45:35
【问题描述】:
我正在编写 Hadoop/HBase 作业。我需要将 Java String 转换为字节数组。 Java的String.getBytes()和Hadoop的Bytes.toBytes()有区别吗?
【问题讨论】:
我正在编写 Hadoop/HBase 作业。我需要将 Java String 转换为字节数组。 Java的String.getBytes()和Hadoop的Bytes.toBytes()有区别吗?
【问题讨论】:
阅读 Javadoc,String.getBytes() 使用默认编码返回 byte[],而 Bytes.toBytes() 使用 UTF-8 返回 byte[]
这可能是同一件事,但可能不是。
如果您想了解一些东西,阅读 Javadoc 总是很有用的。 ;)
【讨论】:
根据its documentation Bytes.toBytes() 使用UTF-8 将参数转换为byte[]。
String.getBytes() (without arguments) 将使用平台默认编码将String 转换为byte[]。该编码可能因操作系统和用户设置而异。通常应避免使用该方法。
您可以使用String.getBytes(String)(或the Charset variant)指定要使用的编码。
【讨论】: