总结一下以往做的java项目遇到的中文乱码问题

@Banana 2017-07-26 09:57:08
中文乱码问题
首先看jsp页面的字符集是否设置为了UTF-8
a.form表单以get方式传入后台后,接收参数出现乱码,把method改为post方式
b.前台参数提交到后台,接收之后出现乱码,在接收的第一个参数前面添加 response.setCharacterEncoding("UTF-8");
c.在struts.xml文件中配置i18n常量<constant name="struts.i18n.encoding" value="UTF-8" />
d.创建Java类进行自定义转字符集,然后将此类配置到web.xml的filter中
e.在tomcat服务器下的server.xml文件中的<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />添加URIEncoding="UTF-8"
f.解决MySQL数据库中文问题主要在JDBC驱动的URL上,例如:jdbc:mysql://localhost/xxx?user=xxx&password=xxx&useUnicode=true&characterEncoding=UTF-8
g.js传值后台中文乱码解决
在“.jsp”页面中,需要通过js将值传递到后台,后台根据传递的值进行数据查询时,通过.jsp的js进行编码,后台java解码,可以解决
【.jsp】
var name = encodeURI(document.getElementById("name").value);
name = encodeURI(name); //需要通过两次编码
【java代码】
name = URLDecoder.decode(name , "utf-8");
h.两个HTML页面之间传值时中文出现乱码,怎样解决???
可以在页面a用encodeURI 编码url 在b页面用decodeURI解码url
页面a
function test() {
var parm1=document.getElementById("test1").value;
var parm2=document.getElementById("test2").value;
var parm3=document.getElementById("test3").value;
var myurl="b.html"+"?"+"parm1="+parm1+"&parm2="+parm2+"&parm3="+parm3;
// encodeURI 编码
window.location.assign(encodeURI(myurl));
}

页面b
function getvalue(){
//b.html?parm1=myimg1&parm2=myimg2
//获得第一个属性
//decodeURI 解码
var url=decodeURI(location.href);
var tmp1=url.split("?")[1];
var tmp2=tmp1.split("&")[0];
var tmp3=tmp2.split("=")[1];
var parm1=tmp3;
...
}
...全文
453 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42582756 2019-12-02
  • 打赏
  • 举报
回复
欧克66666666666
@Banana 2017-07-27
  • 打赏
  • 举报
回复
新手飘过。。。
一个治疗术 2017-07-26
  • 打赏
  • 举报
回复
沙发
李德胜1995 2017-07-26
  • 打赏
  • 举报
回复

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧