1. 程式人生 > >什麼GBK UTF-8都是浮雲 亂碼得這樣 Base64加密解密

什麼GBK UTF-8都是浮雲 亂碼得這樣 Base64加密解密

               

相信很多人都會遇到亂碼問題。想我當初遇到亂碼時也是這裡轉那邊轉,配置檔案裡面改,伺服器配置裡面改,還用強轉,改來改去最後還是亂碼。

煩死人了。這不。最近又亂碼了。好在上天有好生之德。讓土豆我意外知道一個東西。喲呵呵~~~解決亂碼不是問題。那就是使用Base64編碼,接收時再轉碼。保證不會出現亂碼的問題。為什麼?這還用說,base64轉碼後就不是中文了,而是全英文的~~~不多說了。程式設計師別的不會,先貼程式碼。

private static BASE64Encoder encoder = new BASE64Encoder(); private static BASE64Decoder decoder = new
BASE64Decoder(); /**  * BASE64 編碼  *   * @param s  * @return  */ public static String encodeBufferBase64(byte[] buff) {  return buff == null?null:encoder.encodeBuffer(buff).trim(); }   /**  * BASE64解碼  *   * @param s  * @return  */ public static byte[] decodeBufferBase64(String s) {  try  {   return s == null
? null : decoder.decodeBuffer(s);  }  catch (IOException e)  {   e.printStackTrace();  }   return null; }  /**  * base64編碼  *   * @param bytes  *            字元陣列  * @return  * @throws IOException  */ public static String encodeBytes(byte[] bytes) throws IOException {  return new BASE64Encoder().encode(bytes).replace("\n"
, "").replace("\r", ""); } /**  * base64解碼  *   * @param bytes  *            字元陣列  * @return  * @throws IOException  */ public static String decodeBytes(byte[] bytes) throws IOException {  return new String(new BASE64Decoder().decodeBuffer(new String(bytes))); }
測試程式碼如下:
public static void main(String[] args) throws Exception {  String str1="我愛你";  String s=encodeBufferBase64(str1.getBytes());  System.out.println(s);  String strs=new String(decodeBufferBase64(s));   System.out.println(strs); }

控制檯顯示:

ztKwrsTj我愛你
上面有2種方法編碼和解碼。只不過第二種去掉了空格。

按需分配。Over~~~