2014-10-16 3 views
-2

У меня есть массив байтов, и я хочу, чтобы преобразовать в ascii string.but я не уверен, является ли это ASCII, я не уверен, является ли это право формат, я используюбайтовый массив преобразовать в ASCII строку искажен

org.apache.commons.codec.binary.StringUtils.newStringUsAscii (driveCodeByte); 

но преобразованная строка искажена как изображение внизу, так что я могу сделать, чтобы преобразовать в правильный формат?

Даже я не уверен, что это ascii или, возможно, какой-то другой формат кодирования.

enter image description here

+3

Что считается «искаженным»? Мы не знаем, что такое исходные данные или какой результат вы ожидаете. Это действительно помогло бы, если бы вы дали больше контекста, с образцами входных данных и ожидаемыми выходными данными. –

+0

Я действительно не знаю выходного контента, я просто знаю, что массив байтов должен преобразовать в строку ascii, но теперь мой конверт не является правильным, потому что он искажен –

+0

Я сильно подозреваю, что это * не * текст ASCII, t фактически преобразует его в ASCII. Если вы не знаете, что это был изначально текст, вы не должны просто предполагать, что это так. Вы говорите, что вы «не знаете выходной контент» - наверняка у вас есть представление о том, для чего нужна информация. Если вы этого не сделаете, зачем вы его используете? –

ответ

2

Чтобы преобразовать byte[] в String и преобразовать кодировку, вам не нужны внешние рамки.

  • Использование String original = new String(myByteArray, myOriginalEncoding) получить String от вашего byte[] данного ожидаемого кодирования.
  • Затем инициализировать новый String снова преобразовать в какой бы ни кодировки (ASCII здесь): String converted = new String(original.getBytes(myOriginalEncoding), "Cp1252")

Примечание

Вам нужно обязательно знать кодировку оригинал String быть интерпретированы с, т.е. UTF-8, ISO Latin 1 и т. д.

+1

'Cpp1252' ... вы имеете в виду' Cp1252'? – Tom

+0

@Tom oops! Исправлена. Спасибо, что заметили. – Mena

+0

, но я не знаю кодировки, и я пробую каждую кодировку, но она по-прежнему искажается –

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