Каков наилучший способ преобразования двоичных данных в символьные данные? - PullRequest
1 голос
/ 25 ноября 2010

Я хочу преобразовать файл (файл изображения .jpg) в текстовый файл (код ASCII)

Теперь у меня было два плана: преобразовать байты файла в шестнадцатеричный формат и в Base64

  File file=new File("D:/temp/1.jpg");
  byte[] bytes=getBytesFromFile(file);
  System.out.println("bytes:"+bytes.length);//bytes:9006
  String hex=HexUtil.asHex(bytes);
  String base64=Base64.encode(bytes);
  System.out.println("hex:"+hex.length());//hex:18012
  System.out.println("base64:"+base64.length());//base64:12165

Я думаю, что Base64 лучше, потому что отправляет на 12165 меньше шестнадцатеричной строки.

Я хочу знать, есть ли другая хорошая идея сделать это?

спасибо большое! :)

1 Ответ

6 голосов
/ 25 ноября 2010

Base64 - более или менее стандартный способ передачи двоичной информации в виде строки.Так что да, вы делаете это правильно.Википедия:

Схемы кодирования Base64 обычно используются, когда необходимо кодировать двоичные данные, которые необходимо хранить и передавать на носители, предназначенные для обработки текстовых данных

В своей практике я использовал его для передачи прикрепленных документов при отправке их через веб-сервисы.(Это регулировалось правительством (проект касался электронного правительства))

...