2015-02-10 67 views
-1

如何將字符串從Base64編碼在java中如何將字符串從Base64編碼在java中

解碼爲UTF-8我有Base64格式的字符串,我想其解碼爲UTF-8,可以解碼爲UTF-8任何人都可以幫助我?

+0

我輸入:5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194 2015-02-10 09:59:20

+0

我輸入的是:5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy – user3714194 2015-02-10 09:59:38

+0

輸入:5qWt55WM5pSv5Ye6UERGXzIwMTUwMjEwMTEwNjIy輸出:業界支出PDF_20150210110622 – user3714194 2015-02-10 10:00:06

回答

0

有BASE64幾個可用的實現。

首先是Java SDK中的一部分:sun.misc.Base64Decoder。您可以使用它,而無需任何外部依賴。使用這個類的缺點是,不建議使用包sun.*,com.sun.*等的類,因爲它們不適用於應用程序級別,理論上可以在沒有任何通知的情況下進行更改。

其他或多或少的標準實現方式是 javax.xml.bind.DatatypeConverterorg.apache.commons.codec.binary.Base64等需要外部依賴性。

1

至於zatenzu在原來的信息的評論中提到的,這個問題已經有了答案。

然而,這個問題是舊的,並已最upvoted點不在Java中可用「亂用」的,並且需要額外的庫解決方案的答案。

所以,我想補充一點,如Java 8中有一個java.util.Base64類,你可以使用轉換和從BASE64。

參見:http://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

0

谷歌番石榴是一個不錯的選擇,

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