java WEB,项目部署到服务器,IE浏览器页面中文有乱码
本地运行没问题,部署到服务器上就有问题。那么如果你没有权限修改服务器的tomcat的servicexml文件就只能修改自己的程序了。
比如说你要传一个test = "你好"到页面去你可以先
test = URLEncoderencode(test, "utf-8");这么处理一下
然后到页面取到test之后再处理一下
test = URLDecoderdecode(test, "UTF-8");
首先我是用idea开发的,我的需求是在将java项目部署到服务器上,去调取数据,在用?id=北京 这种传参时,linux服务器出现乱码,最后试了多种方法,仅供参考
页面pageEncoding = "utf-8" charset="utf-8"
(1)serverxml 配置端口号出配置 URIEncoding = "UTF-8" 这是针对浏览器的编码
还有个参数 useBodyEncodingForURI = "true"; 暂时没搞清是什么
(2)webxml 中的字符集过滤器 是针对springMVC的字符集
(3) url 中 ?拼接的参数 不会经过字符集拦截器 重定向中可以使用ModelAndView 的对象,
ModelAndView mv = new ModelAndView("redirect:/indexdo");
mvaddObject("id",id);
(4)自定义拦截器
①写一个实现了 HandlerInterceptorAdpter 的拦截器 并且手动实现 preHandle() return true;
② springMVC配置文件中配置
<mvc:interceptors>
<bean id="idInterceptor" class="appplantinterceptorIdInterceptor"></bean>
</mvc:interceptors>
③指定字符集
String id = requestgetParameter("id");
if(id != null){
id = new String(idgetBytes("iso-8859-1"),"utf-8");
requestsetAttribute("id",id);
}
return true;
为什么要用gb2312呢
大部分网站都是用utf-8的,百度用的gb2312,谷歌用的utf-8,webconfig默认设置时utf-8
你的出现乱码是因为默认是utf-8,你打开文件,点菜单,文件 - 高级保存选项,保存为gb2312就不是乱码了,或者webconfig改成
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>,
<globalization requestEncoding="utf-8" responseEncoding="gb2312"/>都行,改的菜单我截个图给你看看
0条评论