資料像水流一樣從乙個地方流向另乙個地方。
文字流是特殊的二進位製流。
既然提到亂碼問題,那就必然是用錯誤的編碼去解釋二進位製流。
在傳輸過程中必然都是以二進位製流傳輸的。
所以,我們需要考慮的是:
下面解決最經典的亂碼問題:servlet讀取資料庫,然後resp.getwriter.print()到前端,出現亂碼。
結點很顯然有三個:
資料庫(1)=>(2)web程式(3)=>(4)前端
一共有4個位置可能會發生亂碼。
配置資料庫時,要使用utf8編碼:
jdbc:mysql:
web程式進行編碼時(對應3處),resp.setcharacterencoding("utf8");
前端進行解碼時(對應4處),resp.setheader("content-type","text/html;charset=utf-8");
實際上,servlet也可以通過resp.getoutputstream()直接列印二進位製流,這樣跟resp.getwriter()+resp.setcharacterencoding()效果是一模一樣的。
下面說幾個症狀:
(1)、前端網頁顯示???,這表示前端徹底無法解碼,多半是因為伺服器端發過來時編碼出錯了
(2)、前端顯示漢字,如「錕金考燙燙燙」等,這表示瀏覽器解碼錯誤
servlet亂碼問題
今天學習servlet,出現了比較煩人的亂碼問題,這裡記錄一下解決方案。在html裡面建立乙個form表單,向servle提交資料,提交中文時就會有亂碼,首先按照程式執行思路走一遍看看到底什麼地方可能會出現問題。首先在瀏覽器輸入位址,tomcat建立servlet,瀏覽器顯示html內容。當使用者提...
servlet中文亂碼問題
亂碼情況 q提交表單資料報含中文,則亂碼 q響應至客戶端包含中文,則亂碼 q解決方法 q提交表單資料報含中文,則亂碼 qget提交 tomcat conf server.xml設定uriencoding gbk 解決get方式的提交 修改tomcat目錄下conf下service.xml,新增uri...
解決servlet亂碼問題
1.解決request的中文亂碼問題 string msg new string request.getparameter message getbytes iso 8859 1 utf 8 2.解決cookie的亂碼問題 cookie name new cookie name urlencoder...