2 huihui304com huihui304com 于 2017.08.30 11:35 提问

Linux服务器之间传参出现乱码

Java做了个仿真终端部署在一台utf-8服务器上,代码telnet到另外一台服务器(gbk),发送命令到这台服务器上, 命令中出现中文乱码。

试过以下几个方法:
1 String g1 = new String(s1.getBytes("utf-8"), "gbk");
2 Unicode2GBK(string2Unicode(addback))
3 new TelnetClient("VT220");
4 new TelnetClient("VT100");
都不行,发送过去的命令还是会出现乱码。
命令行:CLRDSG: DSP="主叫甄别组1"
乱码:CLRDSG: DSP="涓诲彨鐢勫埆缁�"

2个回答

qq_39862515
qq_39862515   2017.09.18 15:23

页面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

/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;

qq_39862515
qq_39862515   2017.09.18 15:24

首先我是用idea开发的,我的需求是在将java项目部署到服务器上,去调取数据,在用?id=北京 这种传参时,linux服务器出现乱码,最后试了多种方法,仅供参考

Csdn user default icon
上传中...
上传图片
插入图片