瀏覽器表單向伺服器提交中文出現亂碼問題

2021-06-29 09:34:10 字數 625 閱讀 5230

亂碼問題出現的根本原因是:編碼與解碼不一致

場景描述:

客戶端:瀏覽器jsp或者html表單

服務端:servlet

操作:瀏覽器在表單中通過get或者post方式提交中文至伺服器,伺服器收到的是亂碼

原因分析:

瀏覽器向服務端傳送中文,所使用碼表必須能夠解碼中文。假設jsp或者html使用的是utf-8的編碼方式提交

那出現亂碼的原因就是服務端解碼失敗(服務端預設的解碼方式為iso8859-1)引起

解決方案:

如果是post方式提交,那麼提交內容在請求體中,因此使用下面的**告知服務端請求體的解碼方式即可

request.setcharacterencoding(「utf-8」);

如果是get方式提交,那麼提交內容附加在url中,因此需要手動解碼

string value =new string(request.getparameter(「***」).getbyte(「iso8859-1」),」utf-8」);

(先拿到預設編碼iso8859-1的二進位制值,再通過utf-8的解碼方式找到對應的中文)

瀏覽器與伺服器

瀏覽器是安裝在電腦裡面的乙個軟體,能夠將頁面內容渲染出來呈現給使用者檢視,並讓使用者與網頁互動的一種軟體。常見主流瀏覽器 internet explorer,chrome,firefox,safari,opera 瀏覽器核心 瀏覽器所採用的渲染引擎。渲染引擎決定了瀏覽器如何顯示網頁的內容,以及網頁格...

JS模擬form表單提交,瀏覽器終止提交

1 js模擬form表單提交,如下例項 結果google 56瀏覽器報異常 form submission canceled because the form is not connected 原來在chrome56之前的版本是不符合標準的,chrome56修復了 這個問題,讓form表單提交符合標...

WEB 伺服器 與 瀏覽器

http協議通訊,是連線瀏覽器和伺服器的橋梁。兩者之間的資訊流,使它們真正的活力。這中間,瀏覽器連著使用者 伺服器連著資料庫 等其他的服務。伺服器能提供給瀏覽器,什麼樣的資訊呢?這些資訊,遵循著http通訊的格式。也許,瀏覽器只是 的乙個視窗,通過使用瀏覽器我們訪問 而真正的 技術,卻被掩蓋掉了。技...