Spring MVC前后端中文编码解码问题-阿里云开发者社区

开发者社区> 酸甜西瓜> 正文

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

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL编码中注意的性能问题
1、选择合适的数据类型 为列选择最小化的数据类型 如果一列中的文本长度不一,使用VARCHAR而不是CHAR 不存储Unicode不要使用NVARCHAR或者NCHAR 如果一行的长度不超过8000,使用VARCHAR而不是TEXT 对于仅存数字的列要使用数字类型而不要用字符类型 不要使用字符串类型存储日期数据。2、谨慎使用触发器 保持触发器内的代码最小化 可能的情况下尽量
968 0
IOS使用CFURLCreateStringByAddingPercentEscapes进行URL编码
<p style="border-width:0px; padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:8px; list-style:none; text-indent:2em; color:rgb(51,51,51); font-family:宋体; font-size:14px; line-heig
1208 0
+关注
酸甜西瓜
不妨试试
3
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载