日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

在JSP中,使用get提交方式出现乱码时,为什么要使用new String(s.getBytes("iso-8859-1"),"utf-8");?

發布時間:2023/12/15 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 在JSP中,使用get提交方式出现乱码时,为什么要使用new String(s.getBytes("iso-8859-1"),"utf-8");? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  最近在學JSP,在學習處理get方式提交數據出現亂碼問題的時候,對其中的一個解決方法new String(s.getBytes("iso-8859-1"),"utf-8");產生了疑問,就是為什么要使用s.getBytes("iso-8859-1")?

  當時只這樣想的:客戶端向服務器發送一個請求,比如說是一個字符串"請求";之后服務器接收到這個請求,也就是這個字符串,可是這時由于某種原因出現了亂碼!這時為了解決這個問題,使用new String(s.getBytes("iso-8859-1"),"utf-8");解決問題??吹竭@條語句,我感覺想不通啊,字符使用iso-8859-1編碼取得字節序列,再由utf-8解碼取得字符串,得到的還是亂碼啊!怎么會取得正確的字符呢!??!想不通?。?/p>

  之后,通過查找資料,得到了一點想法,代碼如下:

 1 public class ThinkIng {
 2     public static void main(String[] args) throws Exception {
 3         System.out.println("	------JSP模擬------");
 4         System.out.println("客戶端,有一個中文字符的請求(轉換成了字節序列發送),發送至服務器端");
 5         String request="請求";
 6         byte[] client=request.getBytes();//客戶端的請求的字節序列
 7         print(client);
 8         System.out.println();//分割用的
 9         System.out.println("有一中間件,將發送的字符序列一默認的編碼格式(iso-8859-1)進行解碼");
10         String sever=new String(client,"iso-8859-1");
11         System.out.println(sever);
12         System.out.println("程序猿發現,這邊有問題,中文有亂碼,前來解決!");
13         String debug=new String(sever.getBytes("iso-8859-1"),"gbk");//還原字節序列,使用“gbk”重新進行解碼!
14         System.out.println(debug);
15         System.out.println("問題解決!");
16     }
17     public static void print(byte[] b){//用于顯示字節序列的
18         for(byte b1:b){
19             System.out.print(Integer.toHexString(b1 & 0xff)+" ");
20         }
21     }
22 }

  先前沒有想通主要是自己沒注意到:

沒有著重的想為什么會在輸出時出現字符亂碼?
客戶端發送求時,字符轉換成字節序列時的編碼方式是什么樣的?

  總的來說,亂碼是由于編碼方式與解碼方式不一致導致的,這一句話沒有理解透!如果當時這樣想既然出現了亂碼,肯定是那邊的編碼格式和解碼格式不一致,就好了!

  注:編碼:將字符串轉換成字節序列;解碼:將字節序列轉換成字符串

  感謝:http://liguocai2009.iteye.com/blog/1602256這篇文章給我的啟發!

  

總結

以上是生活随笔為你收集整理的在JSP中,使用get提交方式出现乱码时,为什么要使用new String(s.getBytes("iso-8859-1"),"utf-8");?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。