как декодировать строку из Base64 в кодировке UTF-8 в Javaкак декодировать строку из Base64 в кодировке UTF-8 в Java
У меня есть строка в формате base64 и я хочу расшифровать его в кодировке UTF-8 и может кто-нибудь поможет мне в этом?
как декодировать строку из Base64 в кодировке UTF-8 в Javaкак декодировать строку из Base64 в кодировке UTF-8 в Java
У меня есть строка в формате base64 и я хочу расшифровать его в кодировке UTF-8 и может кто-нибудь поможет мне в этом?
Существует несколько вариантов реализации BASE64.
Во-первых, это часть java SDK: sun.misc.Base64Decoder
. Вы можете использовать его без каких-либо внешних зависимостей. Недостаток использования этого класса заключается в том, что не рекомендуется использовать классы из пакета sun.*
, com.sun.*
и т. Д., Так как они не предназначены для использования на уровне приложений и теоретически могут быть изменены без какого-либо уведомления.
Другие более или менее стандартные варианты исполнения: javax.xml.bind.DatatypeConverter
, org.apache.commons.codec.binary.Base64
и т. Д., Которые требуют внешних зависимостей.
Как сказал zatenzu в комментарии к оригинальному сообщению, на этот вопрос уже был дан ответ.
Однако этот вопрос является старым, и ответы, которые были наиболее затронуты, указывают на решения, которые недоступны в java «из коробки» и требуют дополнительных библиотек.
Итак, я хотел бы добавить, что с java 8 существует класс java.util.Base64
, который вы можете использовать для конверсий в base64 и из него.
См: http://docs.oracle.com/javase/8/docs/api/java/util/Base64.html
Google гуавы является хорошим выбором,
POM конфигурации:
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<type>jar</type>
<version>14.0.1</version>
</dependency>
Пример кода:
String inputContent = "Hello Việt Nam";
String base64String = BaseEncoding.base64().encode(inputContent.getBytes("UTF-8"));
//decode
System.out.println("Base64:" + base64String);//SGVsbG8gVmnhu4d0IE5hbQ==
byte[] contentInBytes = BaseEncoding.base64().decode(base64String);
System.out.println("Source content: " + new String(contentInBytes, "UTF-8"));//Hello Việt Nam
Мой вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194
мой вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194
вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy и выход: 業界 支出 PDF_20150210110622 – user3714194