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
TRANSLATE with| Arabic | Hebrew | Polish |
| Bulgarian | Hindi | Portuguese |
| Catalan | Hmong Daw | Romanian |
| Chinese Simplified | Hungarian | Russian |
| Chinese Traditional | Indonesian | Slovak |
| Czech | Italian | Slovenian |
| Danish | Japanese | Spanish |
| Dutch | Klingon | Swedish |
| English | Korean | Thai |
| Estonian | Latvian | Turkish |
| Finnish | Lithuanian | Ukrainian |
| French | Malay | Urdu |
| German | Maltese | Vietnamese |
| Greek | Norwegian | Welsh |
| Haitian Creole | Persian |