中文亂碼處理

發生中文亂碼通常出如今下面三種狀況中:html

①表單form中java

由於表單在提交請求的數據的時候也能夠帶參數。好比:瀏覽器

<from action='/UsersManager3/UserClServlet?type=update' method='post'>安全

(1)post服務器

解決方法:request.setCharacterEncoding("utf-8");// gbk gb2312 big5函數

(2)get工具

寫一個工具類post

package com.hsp.utils;

public class MyTools {
	
    public static String getNewString(String str) {
			
        String newString = "";
		
	try {
	    newString = new String(str.getBytes("iso-8859-1"), "utf-8");
	} catch (Exception e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
	return newString;
	
    }

}

②超連接測試

<a href="http://www.sohu.com?name=函數">測試</a>spa

該方法和get處理方法同樣。

③sendRedirect()發生亂碼

response.sendRedirect("servlet 地址?username=順平"); //此時客戶端向服務器端發送了一個請求。

說明一:

特別說明,若是你的瀏覽器是ie6或如下版本,且中文是奇數的時候 ,則咱們的②和③中的狀況依然會出現亂碼。

解決方法是:

第二種狀況的解決方法:

String info = java.net.URLEncoder.encode("你好嗎.jpg", "utf-8");

<a href="http://http://www.sohu.com?name=" + info>測試</a>

第三種狀況的解決方法:

String info = java.net.URLEncoder.encode("你好嗎.jpg", "utf-8");

response.sendRedirect("servlet地址?username=" + info);

說明二:

咱們應當儘可能使用post方式提交。由於其安全,提交的數據量也更大。

說明三:

在服務器端是中文,在response的時候,也要考慮瀏覽器顯示是否正確,通常咱們經過response.setContentType("text/html;charset=utf-8");設置回送的中文的格式。

另外在這個知識點上補充一個知識點:當咱們下載文件的時候,可能提示框是中文亂碼,解決方法:

String temp = java.net.URLEncoder.encode("傳奇.mp3", "utf-8");

response.setHeader("Content-Disposition", "attachment; filename=" + temp);

相關文章
相關標籤/搜索