Servlet亂碼問題的解決

2021-06-16 04:18:39 字數 842 閱讀 8296

以下分析基於以下假設:編碼格式統一採用utf-8

post方式:

服務端:

在第一次呼叫request.getparameter時,會對parameter進行解析,如果沒有設定解析(解碼)所用的encoding,則使用預設的編碼org.apache.coyote.constants.default_character_encoding("iso-8859-1")對引數進行解析。因此如果引數中包含中文,解析出來的就是亂碼了。因此如果要支援對中文的解析,就要在第一次呼叫request.getparameter前,先設定解析引數時用的編碼格式,如:

request.setcharacterencoding("utf-8");

客戶端:

同樣,在客戶端,如果要讓瀏覽器支援中文的顯示,就必須設定網頁的編碼格式,如:

utf-8">

get方式:

客戶端:

如果uri中包含中文,則必須對其進行編碼:

utf-8") %>"><%=file %>

這裡採用utf8編碼。

服務端:

服務端必須知道客戶端採用的編碼方式,然後採用同樣的方式解碼。可以在server.xml中告訴服務端客戶端的編碼方式:

uriencoding="utf-8"/>

uriencoding="utf-8"/>

對於form中的get方式,在提交後,瀏覽器會使用當前頁面的編碼格式,對中文引數進行uri編碼,因此不用人為的進行編碼了。只要確保頁面的編碼也是utf8即可:utf-8">

解決servlet亂碼問題

1.解決request的中文亂碼問題 string msg new string request.getparameter message getbytes iso 8859 1 utf 8 2.解決cookie的亂碼問題 cookie name new cookie name urlencoder...

servlet中解決中文亂碼問題

最早的http協議中,並沒有附加的資料型別資訊,所有傳送的資料都被客戶程式解釋為超文字標記語言html 文件,而為了支援多 資料型別,http協議中就使用了附加在文件之前的mime資料型別資訊來標識資料型別。常用的mime型別由兩部分組成 前面是資料的大類別,例如聲音audio 圖象image等,後...

servlet亂碼問題

今天學習servlet,出現了比較煩人的亂碼問題,這裡記錄一下解決方案。在html裡面建立乙個form表單,向servle提交資料,提交中文時就會有亂碼,首先按照程式執行思路走一遍看看到底什麼地方可能會出現問題。首先在瀏覽器輸入位址,tomcat建立servlet,瀏覽器顯示html內容。當使用者提...