请求地址: /diary/search?title=%E7%A4%BE%E4%BC%9A
后台处理代码:
String title=getPara("title");
System.out.println("搜索关键词:"+title);
Page<Diary> page=ds.search(1, 10, user.getId(), title);
System.out.println("搜索结果:"+page.getList().toString());
控制台输出:
搜索关键词:社会
搜索结果:[]
JFinal-4.9.03 action report -------- 2020-12-22 11:19:37 --------------------------
Url : GET /diary/search
Controller : controller.Diary_c.(Diary_c.java:1)
Method : search
Interceptor : com.jfinal.ext.interceptor.SessionInViewInterceptor.(SessionInViewInterceptor.java:1)
com.jfinal.plugin.activerecord.tx.TxByMethods.(TxByMethods.java:1)
interceptor.GlobalInterceptor.(GlobalInterceptor.java:1)
Parameter : title=社会
--------------------------------------------------------------------------------
自己百度各种办法:
try {
title=URLDecoder.decode((new String(title.getBytes("ISO8859-1"), "UTF-8")), "UTF-8");
System.out.println("搜索关键词:"+title);
}catch(Exception e) {
e.printStackTrace();
}
等等,结果还是显示上面控制台效果。
有大佬知道是怎么回事吗?
Parameter : title=社会
证明服务端没有乱码,没问题的
在 url 中携带中文参数会被自动 encoding,在 tomcat 下需要配置一下 server.xml
如果使用 jfinal undertow 无需配置,自动支持