使得檔案本身以utf-8字符集編輯儲存
讓瀏覽器瀏覽器以utf-8字符集解析
在瀏覽器中右鍵選擇編碼格式為utf-8;
通過標籤模擬response頭,起到告訴瀏覽器用utf-8的編碼解析
具體操作:
//html
或//jsp
<%@ pageencoding="utf-8"%>
//xml
<?xml encoding="utf-8"?>
response亂碼問題
控制瀏覽器用utf-8進行解碼
將response物件中的資料以utf-8解碼後的位元組流發向瀏覽器response.setcontenttype("text/html;charset=utf-8");
//或者
response.setheader("content-type","text/html;charset=utf-8");
//ps:setheader是httpservletresponse的方法。如果想在***filter中設定字元編碼,則無此方法,因為filter的dofilter方法的引數型別是servletresponse
response.setcharacterencoding("utf-8");
request亂碼問題
post請求亂碼
get請求(url方式傳遞引數亂碼)resquest.setcharacterencoding("頁面使用的字符集"); //只對post請求有效
原因:
//問題本質是get方式傳遞的引數內容預設編碼方式問iso8859-1,而且使用request.setcharacterencoding("utf-8")也無法解決問題。
解決方法一:
修改tomcat伺服器的配置檔案,即修改tomcat目錄下的conf/server.xml檔案。
解決方法二:/> //注釋為需要新增的部分
在servlet中手動轉換字符集並轉換(不建議使用)。
//對應servlet中:
string name = request.getparameter("name");
string value = null;
value = new string(name.getbytes("iso-8859-1"),"頁面使用的字符集");
修改資料庫字符集或表字符集
#sql語句
show create table 表名; #查詢表的資訊(主要看字符集)
/*例:table create table
dog create table `dog` (
`dog_id` int(11) not null auto_increment,
......
primary key (`dog_id`)
) engine=innodb auto_increment=1 default charset=utf8*/
#修改完資料庫字符集,需要重啟mysql資料庫
alter database 資料庫名 character set utf8;
#修改表字符集
alter table 表名 default character set utf8 collate utf8_general_ci;
Servlet或springMVC中文亂碼處理
1 如果是get提交,並且tomcat為8.0及以後的版本,tomcat底層已經處理了get提交的中文亂碼問題,所以get提交在tomcat8.0以後的版本沒有中文亂碼問題!2 如果請求是get提交,並且tomcat是7.0及以前的版本,get提交的中文引數,在獲取時會出現亂碼問題!解決方法 在 t...
servlet中獲取request中文亂碼問題分析
request.setcharacterencoding utf 8 第一種情況 log.info 服務商名稱 request.getparameter networkname 服務商名稱 new string request.getparameter networkname getbytes is...
HTMLTestRunner的報告中文亂碼
在學習python selenium自動化測試學習中遇到htmltestrunner測試報告出現亂碼的問題 解決辦法 網上查詢到htmltestrunner測試報告中文亂碼的解決方案 1 開啟htmltestrunner.py原始檔,找到如下行 if isinstance o,str uo unic...