Heyho,Encode byte [] as String
Я хочу преобразовать данные байта, которые могут быть любыми, в строку. Мой вопрос, является ли он «безопасный» для кодирования данных байт с UTF-8, например:
String s1 = new String(data, "UTF-8");
или с использованием base64:
String s2 = Base64.encodeToString(data, false); //migbase64
Я просто боюсь, что с помощью первого метод имеет отрицательные побочные эффекты. Я имею в виду, что оба варианта работают p̶e̶r̶f̶e̶c̶t̶l̶y̶, но s1 может содержать любой символ кодировки UTF-8, s2 использует только «читаемые» символы. Я просто не уверен, действительно ли нужно использовать base64. В принципе, мне просто нужно создать String, отправить его по сети и получить его снова. (В моей ситуации нет другого способа: /)
Вопрос только в отрицательных побочных эффектах, если это возможно!
Вам действительно нужно сделать «java.lang.String» вне ваших данных? Почему вы не можете напрямую обращаться с байтовой последовательностью? –
У этого есть технические причины: D Я просто говорю «Minecraft»:/ – maxammann
Я не знал, что Minecraft требует символов! Тем не менее, в отношении вашего вопроса о том, как вы можете потерять данные, причина в том, что недопустимые последовательности UTF-8 будут закодированы в качестве замещающих символов. Я не уверен, правильно ли это ответили ниже. –