Android之解决Base64 encode中文乱码问题
生活随笔
收集整理的這篇文章主要介紹了
Android之解决Base64 encode中文乱码问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、問題
需求需要,把字符串轉化為UTF-8編碼之后需要base64.encode處理,但是我寫了
?
String ss = new String(value.getbytes("UTF-8"), "UTF-8");Base64.encode(ss);
死活出不來,依然亂碼,然后寫了檢測當前編碼格式,然后轉化成UTF-8,
?
String ss = new String(value.getbytes("GB1312"), "UTF-8"); Base64.encode(ss);?
還是不行
?
?
?
2、原因
代碼封裝里面Base64.encode(String s)函數里面寫了這段代碼
{
???? byte[]? bytes =? s.getBytes("US-ASCII");
???? encodeBytes(bytes);
}
很明顯,特么轉成了“US-ASCII”編碼格式,前面轉的UTF-8格式做了無用功,特么像日了狗一樣
?
?
?
3、解決辦法和總結
不要寫成把字符串轉成UTF-8,因為到時候還是得轉成bytes,傳到Base64.encode函數里面去,我們直接這樣轉
Base64.encodeBytes(value.getBytes("UTF-8"));
以后一定要記得先看源碼,然后分析,還有就是要記得Base64執行encode的時候,我們直接傳編碼格式的字節流進去是最安全的,切記,以后不要換這個錯誤了。
?
總結
以上是生活随笔為你收集整理的Android之解决Base64 encode中文乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio之Insta
- 下一篇: Android ndk之Check th