1. 程式人生 > >Web中的中文參數亂碼

Web中的中文參數亂碼

io流 傳參 charset 傳輸 server 註意 req rec 解析

中文參數亂碼
1 get方式傳參,中文亂碼
修改tomcat中的配置server.xml
在修改端口的標簽中添加屬性URIEncoding="XXX"
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8989" protocol="HTTP/1.1" redirectPort="8443"/>

2 post方式傳送,中文亂碼
獲取參數【之前】,先設置一下request中的編碼:
request.setCharacterEncoding("UTF-8");

3 servlet中使用io流給瀏覽器寫回數據,中文亂碼
默認情況下瀏覽器會采用中文簡體(GBK)來解析響應正文
我們可以在servlet設置響應的頭部,來通知瀏覽器本次響應正文中的內容編碼是什麽
response.setContentType("text/html;charset=utf-8");

在response獲得out輸出流之前,我們還需要設置一下這個輸出流是用什麽編碼來輸入內容
response.setCharacterEncoding("UTF-8");

註意:響應內容的整體格式(格式的控制由tomcat負責)
1.響應狀態行
2.消息報頭/響應頭部
3.\r\n
4.響應正文

給瀏覽器傳輸的內容都在響應正文中

Web中的中文參數亂碼