Spring MVC前后端中文编码解码问题

简单介绍一下,前端通过jQuery的ajax.post()方法来发送请求,默认编码类型为utf-8,调用方法如下:

1

 








服务端使用Spring MVC进行处理,上面的脚本POST的参数中,有一部分是包含中文字符的,所以,需要Spring MVC配置一下默认的编码格式,需要在web.xml中配置如下的内容,来设定默认编码格式:

2

 













配置后,在相应的Controller中就可以直接获取传递的中文参数内容,而不需要进行任何的解码操作,如下:

3

 

 

 

 

 

 

 顺便说一句,这里面使用了Spring MVC自动参数实例化的功能,只要保证参数名与类的参数名一致,就可以自动完成参数的实例化操作,当然,这里还有一个问题,那就是如果待实例化的类,其中含有枚举类参数的话,那么要求前端脚本在赋值相对应的参数值的时候,需要使用其枚举值的字符串格式,如:枚举值MoneyTypeEnum.COST对应的参数值,应该就是”COST“,注意,这里是区分大小写的。

这样的配置,基本可以处理绝大多数的中文情况,当然,针对一些特殊字符的处理,还必须进行相应的编码解码操作,可以使用 encodeURIComponent或encodeURI来进行前端编码,然后在客户端通过如下方式来进行解码:

4

 

 

 

 注意一下对应的编码格式,即可。

 题外话,如何查看编码内容是否已经正确地解码,可以通过System.out.print()方法来输出到控制台来查看,当然,如果通过Evaluate Expression实时运行或debugger来观察的时候,可能会遇到中文无法正常显示,显示为方块乱码的情况,这是由于IDEA编辑器自己的字体选择造成的,因为默认的编辑器字体是不包含中文的,所以无法正常显示中文,修改一下即可,步骤如下:

file -> settings -> IDE Settings -> Apprearance -> UI Options -> Override default fonts by(not recommended)

选择微软雅黑,长相应该就是三个方块,选中后,点击下面的Apply按钮,就可以正常显示啦。

5

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值