http通訊get,post 中文亂碼問題原因分析

2021-07-11 05:00:03 字數 534 閱讀 5555

以前寫過一些解決中文亂碼的部落格。但是以前只給了解決方案,並沒有分析原因。

今天來分析一下亂碼的原因:

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...