什麼GBK UTF-8都是浮雲 亂碼得這樣 Base64加密解密
阿新 • • 發佈:2018-12-20
相信很多人都會遇到亂碼問題。想我當初遇到亂碼時也是這裡轉那邊轉,配置檔案裡面改,伺服器配置裡面改,還用強轉,改來改去最後還是亂碼。
煩死人了。這不。最近又亂碼了。好在上天有好生之德。讓土豆我意外知道一個東西。喲呵呵~~~解決亂碼不是問題。那就是使用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~~~