jsp匯出excel 中文搜尋後 頁面空白 javaweb tomat啟動有問題,jetty沒問題
阿新 • • 發佈:2019-01-26
百度搜索後
您好,提問者:
首先你要確定提交方式(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"); }