1. 程式人生 > >jsp匯出excel 中文搜尋後 頁面空白 javaweb tomat啟動有問題,jetty沒問題

jsp匯出excel 中文搜尋後 頁面空白 javaweb tomat啟動有問題,jetty沒問題

百度搜索後

您好,提問者:
    首先你要確定提交方式(method='get | post'),我來講一下:

1 2 3 4 5 6 7 doPost(): 頁面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 後臺: response.setContentType("text/html;charset=UTF-8"); //如果不指定UTF-8,頁面顯示亂碼,但後臺輸出正確 //設定request請求過來的編碼格式 request.setCharacterEncoding(
"UTF-8");
1 2 3 4 5 6 doGet(): 1、頁面用跟Servlet的後臺都使用UTF-8 頁面:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 後臺:response.setContentType("text/html;charset=UTF-8"); 2、亂碼轉換: String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),
"UTF-8");
解決方法

String devName = StringUtils.isEmpty(request.getParameter("devName"))?null:request.getParameter("devName").trim();

devName= new String(devName.getBytes("ISO-8859-1"), "utf-8");//解決無法匯出中文搜尋問題。

不管是jetty 還是tomcat了

if(devName!=null) {
if(java.nio.charset.Charset.forName("GB2312").newEncoder().canEncode(devName)){}
else{
devName = new String(devName.getBytes("ISO-8859-1"),"utf-8");//解決無法匯出中文搜尋問題。
}
}

解決方案二
jsp
var url = "${ctx} /export?sDate="+sDate+"&eDate="+eDate+"&tradeStatus="+tradeStatus+"&devName="+encodeURI(encodeURI(devName))+"&payment="+payment;
conrtoller:     
if(devName!=null && !"".equals(devName))
{
    devName= URLDecoder.decode(devName,"UTF-8");
}