发布到Linux服务器出现页面传入后台的汉字乱码

用Myeclipse10开发的,在jsp页面已经设置编码方式,设置方式如下:<%@pagelanguage="java"import="java.util.*"pageE... 用Myeclipse10开发的,在jsp页面已经设置编码方式,设置方式如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
然后通过传参数提交到后台,传参的方式如下:(传递的参数包含中文)
$.post("init.action","¶m1=123¶m2=abc",function(result){});
然后在本地服务器路的时候写入到数据库是正常的,没有出现乱码,本地是window平台
但是发布到Linux服务器就出现乱码,求大神指教到底是怎么回事
展开
 我来答
糖醋而已
推荐于2018-03-07
知道答主
回答量:7
采纳率:100%
帮助的人:6301
展开全部
首先我是用idea开发的,我的需求是在将java项目部署到服务器上,去调取数据,在用?id=北京 这种传参时,linux服务器出现乱码,最后试了多种方法,仅供参考
页面pageEncoding = "utf-8" charset="utf-8"

(1)server.xml 配置端口号出配置 URIEncoding = "UTF-8" 这是针对浏览器的编码
还有个参数 useBodyEncodingForURI = "true"; 暂时没搞清是什么
(2)web.xml 中的字符集过滤器 是针对springMVC的字符集
(3) url 中 ?拼接的参数 不会经过字符集拦截器 重定向中可以使用ModelAndView 的对象,
ModelAndView mv = new ModelAndView("redirect:/index.do");
mv.addObject("id",id);
(4)自定义拦截器
①写一个实现了 HandlerInterceptorAdpter 的拦截器 并且手动实现 preHandle() return true;
② springMVC配置文件中配置
<mvc:interceptors>
<bean id="idInterceptor" class="app.plant.interceptor.IdInterceptor"></bean>
</mvc:interceptors>
③指定字符集
String id = request.getParameter("id");
if(id != null){
id = new String(id.getBytes("iso-8859-1"),"utf-8");
request.setAttribute("id",id);
}
return true;
godfather1103
2015-08-09 · TA获得超过3421个赞
知道大有可为答主
回答量:4501
采纳率:66%
帮助的人:1773万
展开全部
首先查看一下连接数据库的URL的格式,如果你的URL格式是

jdbc:mysql://localhost:3306/数据库名------就需要改成下面这样
jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8
上面两种写法在windows中都没问题,在Linux下就必须设定连接的字符编码
如果还有问题的话
在终端中登录mysql-------命令是mysql -u root -p;
输入show variables like '%char%'; 看看返回的结果是否全部都是utf8;
再查看建立的表的属性是否为utf8;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没啥好玩的鸭
2021-01-13
知道答主
回答量:50
采纳率:100%
帮助的人:3.5万
展开全部

0002_windows程序出现乱码的解决方案之一

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式