以前寫過一些解決中文亂碼的部落格。但是以前只給了解決方案,並沒有分析原因。
今天來分析一下亂碼的原因:
1.通過瀏覽器給後台提交資料的時候,預設使用的是iso-8859-1提交的
所以在servlet中收到中文資料時要做編碼轉換。
把字串按照iso-8859-1轉換為位元組,然後把位元組轉換為utf-8
name = new string(name.getvbytes("iso-8859-1","utf-8"));
同時需要設定返回接收的文字型別(響應頭的文字型別)response.setcontenttype("text/html;charset=utf-8")[如果沒有這個,控制台可以輸出正確中文,但是響應介面還是會亂碼(servlet介面)]
get請求
中文資料
瀏覽器會對編碼做轉換,轉換為伺服器可識別的編碼
urlencoder.encode(string,"utf-8")
post請求就不需要這一步轉碼操作了
HTTP請求方法 GET POST
http hyper text transfer protocol 超文字傳輸協議。是一種建立在tcp上的無狀態連線,整個基本的工作流程是客戶端傳送乙個http請求,說明客戶端想要訪問的資源和請求的動作,服務端收到請求之後,服務端開始處理請求,並根據請求做出相應的動作訪問伺服器資源,最後通過傳送ht...
Http之Get Post請求區別
在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之為主體 body 2 get與post區別 htt...
Http之Get Post請求區別
1 http請求格式 在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之為主體 body 2 get...