2015-02-10 1 views
-1

как декодировать строку из Base64 в кодировке UTF-8 в Javaкак декодировать строку из Base64 в кодировке UTF-8 в Java

У меня есть строка в формате base64 и я хочу расшифровать его в кодировке UTF-8 и может кто-нибудь поможет мне в этом?

+0

Мой вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194

+0

мой вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194

+0

вход: 5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy и выход: 業界 支出 PDF_20150210110622 – user3714194

ответ

0

Существует несколько вариантов реализации BASE64.

Во-первых, это часть java SDK: sun.misc.Base64Decoder. Вы можете использовать его без каких-либо внешних зависимостей. Недостаток использования этого класса заключается в том, что не рекомендуется использовать классы из пакета sun.*, com.sun.* и т. Д., Так как они не предназначены для использования на уровне приложений и теоретически могут быть изменены без какого-либо уведомления.

Другие более или менее стандартные варианты исполнения: javax.xml.bind.DatatypeConverter, org.apache.commons.codec.binary.Base64 и т. Д., Которые требуют внешних зависимостей.

1

Как сказал zatenzu в комментарии к оригинальному сообщению, на этот вопрос уже был дан ответ.

Однако этот вопрос является старым, и ответы, которые были наиболее затронуты, указывают на решения, которые недоступны в java «из коробки» и требуют дополнительных библиотек.

Итак, я хотел бы добавить, что с java 8 существует класс java.util.Base64, который вы можете использовать для конверсий в base64 и из него.

См: http://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

0

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 
Смежные вопросы