Difference between String.getBytes() and Bytes.toBytes(String data)

victorunique picture victorunique · Sep 26, 2011 · Viewed 9.7k times · Source

I'm writing a Hadoop/HBase job. I needed to transform a Java String into a byte array. Is there any differences between Java's String.getBytes() and Hadoop's Bytes.toBytes()?

Answer

Joachim Sauer picture Joachim Sauer · Sep 26, 2011

According to its documentation Bytes.toBytes() converts the parameter to a byte[] using UTF-8.

String.getBytes() (without arguments) will convert the String to byte[] using the platform default encoding. That encoding can vary depending on the OS and user settings. Use of that method should generally be avoided.

You could use String.getBytes(String) (or the Charset variant) to specify the encoding to be used.