2016-07-08 4 views
-1

Могу ли я использовать строку вместо массива байтов, созданных с помощью новой строки (байты)? Я хочу сохранить их в базе данных. В байтах я вычислил хеш md5.Использование строки вместо массива байтов java

+0

В чем проблема с массивом, сэр? – RE60K

+1

Как насчет [Base64] (https://en.wikipedia.org/wiki/Base64)? – Seelenvirtuose

ответ

4

Нет, a String не подходит в качестве контейнера для произвольных байтов.

Конструктор String(byte[] bytes) будет интерпретировать массив, который вы передадите ему, и преобразовать его в символы, используя кодировку по умолчанию для вашей системы. Это может вызвать исключение, если массив байтов содержит последовательность байтов, которая недопустима для кодировки символов, и даже если она работает без исключения, то вызов getBytes() на String не гарантированно возвращает точно такие же байты.

Если вы хотите сохранить массив байтов в базе данных, сохраните его как BLOB (Binary Large OBject) или, если вы действительно хотите сохранить его как строку, затем преобразуйте его в текст, используя, например, кодировку Base64 или как шестнадцатеричные цифры.

+0

Спасибо за ответ –

Смежные вопросы