1. 程式人生 > >java 解決介面呼叫過程中的編碼問題

java 解決介面呼叫過程中的編碼問題

在網路傳輸中,資訊都是以位元組序列的方式傳輸的。所以,傳送方的String要按照某種編碼方式(如UTF-8,GBK)編碼為位元組序列,在網路中傳輸後,接收方取得這個位元組序列,按照相同的編碼方式將位元組序列解碼為String。

String name = "張三";//這裡預設是utf-8傳輸的

//傳輸過來的時候是什麼編碼格式這裡就用什麼編碼格式取,如果是瀏覽器發過來的那預設是iso-8859-1,其他看傳送方式什麼編碼格式傳送的。
byte[] b1 = name.getBytes("UTF-8");
//在轉換成utf-8的字串
String name1 = new String(b1, "UTF-8"
); //編碼解碼相同,正常顯示 System.out.println(name1); String name2 = new String(b1, "GBK"); //編碼解碼不同,亂碼 System.out.println(name2); byte[] b2 = name.getBytes("GBK"); String name3 = new String(b2, "GBK"); //編碼解碼相同,正常顯示 System.out.println(name3); String name4 = new String(b2, "UTF-8"); //編碼解碼不同,亂碼 System.out.println(name4);