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

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

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

 








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

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

 













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

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

 

 

 

 

 

 

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

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

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

 

 

 

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

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

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

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

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

 

上一篇:Python爬虫三(Cookie的使用)


下一篇:《SpringBoot揭秘:快速构建微服务体系》—第1章1.3节微服务会带来哪些好处