在java后台的Action代碼或者Servlet代碼中用response的方法來設置輸出內容的編碼方式,有以下三個方法:
1、response.setCharacterEncoding("UTF-8");
2、response.setContentType("text/html;charset=UTF-8");
3、response.setLocale(new java.util.Locale("zh","CN"));
下面對以上3種方法進行差異分析:
第一種方法只能用來設置out輸出流中所采用的編碼,但是它的優先權最高,可以覆蓋后面兩種方法中的設置;
第二中方法可以設置out輸出流中字符的編碼方式,也可以設置瀏覽器接收到這些字符后以什么編碼方式來解碼,它的優先權低於第一種方法,
但高於第三種方法;
第三種方法只能用來設置out輸出流中字符的編碼方式,但是它的優先權最低,在已經使用前兩種方法中的一個設置了編碼方式以后,它就被覆蓋而不起作用了。
response.setContentType()的String參數及對應類型
text/javascript json數據
<option value="image/bmp">BMP</option>
<option value="image/gif">GIF</option>
<option value="image/jpeg">JPEG</option>
<option value="image/tiff">TIFF</option>
<option value="image/x-dcx">DCX</option>
<option value="image/x-pcx">PCX</option>
<option value="text/html">HTML</option>
<option value="text/plain">TXT</option>
<option value="text/xml">XML</option>
<option value="application/afp">AFP</option>
<option value="application/pdf">PDF</option>
<option value="application/rtf">RTF</option>
<option value="application/msword">MSWORD</option>
<option value="application/vnd.ms-excel">MSEXCEL</option>
<option value="application/vnd.ms-powerpoint">MSPOWERPOINT</option>
<option value="application/wordperfect5.1">WORDPERFECT</option>
<option value="application/vnd.lotus-wordpro">WORDPRO</option>
<option value="application/vnd.visio">VISIO</option>
<option value="application/vnd.framemaker">FRAMEMAKER</option>
<option value="application/vnd.lotus-1-2-3">LOTUS123</option>
request解決亂碼的方式
//01.method=get
1.tomcat/conf/server.xml URIEncoding="UTF-8" ===>>>>可以設置GET方式提交表單出現的亂碼的現象
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
2.String name=new String(xxx.getBytes("ISO-8859-1"),"UTF-8");
//02.method=post
//命令Tomcat使用UTF-8碼表解碼,通常都在doPost方法的第一句,就是這句代碼,防止獲取請求參數時亂碼。
request.setCharacterEncoding("UTF-8");