Разница между String.getBytes () и Bytes.toBytes (строковые данные) - PullRequest
17 голосов
/ 26 сентября 2011

Я пишу работу Hadoop / HBase. Мне нужно было преобразовать Java String в байтовый массив. Есть ли различия между String.getBytes() в Java и Bytes.toBytes() в

?

Ответы [ 2 ]

22 голосов
/ 26 сентября 2011

Согласно его документации Bytes.toBytes() преобразует параметр в byte[] с использованием UTF-8.

String.getBytes() (без аргументов) преобразует String в byte[], используя кодировку платформы по умолчанию. Эта кодировка может варьироваться в зависимости от ОС и пользовательских настроек. Как правило, этого метода следует избегать.

Вы можете использовать String.getBytes(String) (или Charset вариант ) до указать кодировку, которая будет использоваться.

8 голосов
/ 26 сентября 2011

Читая Javadoc, кажется, что String.getBytes () возвращает byte[] с использованием кодировки по умолчанию, а Bytes.toBytes () возвращает byte[] с использованием UTF-8

Это может быть то же самоевещь, но это не может быть.

Всегда полезно читать Javadoc, если вы хотите что-то узнать.;)

...