Base64編碼的中文編碼問題


Base64編碼和解碼在處理英文的時候沒有問題,處理中文的時候暗藏陷阱!
原因是Base64在處理字符串的時候使用平台的缺省編碼方式。

 

 Base64 b64 = new Base64();String s = new String(b64.encode(content));

如果content是中文,那么new String(b64.encode(content))可能使用UTF-8或者GB2312,而這兩種編碼方式生成的base64編碼是不同的。這樣,若果A平台的編碼方式是UTF-8,B平台是GB2312,那么在A上用Base64編碼的的字符串在B平台上解碼就是亂碼。
為了避免中文亂碼的問題,可以強制在編碼的時候使用UTF-8

String s= new String(b64.encode(content.getBytes("UTF-8")), "UTF-8"));

這樣可以強制Base64編碼的時候使用UTF-8

 

轉載:https://blog.csdn.net/iteye_7726/article/details/82309584

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM