POST GET產生亂碼的原因及解決方案

2022-05-23 14:30:11 字數 652 閱讀 6342

相關完整資料1:

相關完整資料2:

get請求引數亂碼:首先瀏覽器預設是utf-8編碼,以位元組的形式傳送到伺服器,伺服器以iso-8859-1解碼utf-8編碼的位元組序列,所以才會出現亂碼字元。

解決方案:把亂碼字元重新以iso-8859-1編碼,變成了utf-8位元組序列。然後再以utf-8重新解碼,得到正確的字元。

請求引數亂碼原理及解決方案,有圖有真相)

post請求引數亂碼:jsp中post表單的編碼由pageencoding和contenttype引數決定,以pageencoding為準,如果沒有pageencoding則以contenttype為準,如果沒有contenttype以meta標籤中的charset為準,都沒有則以iso-8859-1編碼 

表單引數是通過http的body傳遞到伺服器的。前面已經說過,表單項引數是採用contenttype中的charset指定的編碼格式進行編碼的。伺服器端也是用contenttype中的charset指定的編碼進行解碼操作,所以一般不會出現亂碼問題。

這個編碼我們可以通過request.setcharacterencoding()來進行設定,該設定只對post引數有效。注意,這個函式必須在第一次呼叫request.getparameter()之前使用。

(post請求引數亂碼原理及解決方案,有圖有真相)

亂碼產生的原因

亂碼產生的原因一般有兩種 一種是解析錯誤 另一種是在錯誤解析的基礎上加上了編碼轉換。比如乙個gb2312編碼的檔案,使用utf 8來開啟,就會出現亂碼。在現實中,我們可能並不知道傳送方和接收方的編碼。所以應該以程式的方式進行如上的反向解析,如下 public static void main str...

MySQL PHP產生亂碼的原因及解決方法

mysql php產生亂碼原因 mysql資料庫預設的編碼是utf8,如果這種編碼與你的php網頁不一致,可能就會造成mysql亂碼 mysql中建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成mysql亂碼 mysql建立表時新增欄位是可以選擇編碼的,如果這種編碼與你的網頁...

MySQL PHP產生亂碼的原因及解決方法

mysql php產生亂碼原因 mysql資料庫預設的編碼是utf8,如果這種編碼與你的php網頁不一致,可能就會造成mysql亂碼 mysql中建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成mysql亂碼 mysql建立表時新增欄位是可以選擇編碼的,如果這種編碼與你的網頁...