1. 程式人生 > >關於java中 get提交方式的亂碼問題

關於java中 get提交方式的亂碼問題

文字 問題 block eth 重新 clas 指定 原因 getpara

這個原因是服務器導致的,服務器比如tomcat接收get方法默認使用的是ISO-8859-1編碼,
而瀏覽器發送時文字編碼是和頁面編碼保持一致的,如果頁面是使用utf-8 編碼 get方法文字自然是使用utf-8編碼,
但接收服務器沒有設置的情況下用了ISO-8859-1編碼接收,中文自然就成亂碼了,
不過由於ISO-8859-1編碼是單字節編碼所以我們可以使用getBytes("ISO-8859-1"),"utf-8"這樣把文字重新轉換成utf-8 編碼。

第一個發送的文字是utf-8編碼 而tomcat接收後用錯誤的ISO-8859-1編碼了,這樣getBytes("ISO-8859-1")後會重新得到正確的utf-8編碼的字節數組 ,然後用 new
String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")重新將字節編碼成UTF-8編碼的文字這樣文字就正確了。

如果是tomcat的話 server.xml文件裏
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
後邊的URIEncoding就是設置get方法編碼的如果沒有指定URL接收的編碼類型,自動會用ISO-8859-1編碼


關於java中 get提交方式的亂碼問題