今天用struts2寫文件的下載,出現了文件名為中文時有亂碼的問題。參考了很多網上和書上的方法但是不奏效。以下是我的解決方法,雖然很簡單直白,但是解決問題了,供大家參考。
public String getDownFileName() throws UnsupportedEncodingException {
return java.net.URLDecoder.decode(downFileName, "utf-8");
}
public void setDownFileName(String downFileName) throws UnsupportedEncodingException {
// this.downFileName = new String(downFileName.getBytes("utf-8"),"iso-8859-1");
this.downFileName = java.net.URLEncoder.encode(downFileName, "utf-8");
}
其實就是先進行utf-8編碼,然後再utf-8解碼。我理解是因為服務器端和客戶端的編碼方式不一樣,所有要進行統一的編碼
Struts 的詳細介紹:請點這裡
Struts 的下載地址:請點這裡