相信大伙用Java开发项目的时候,首先会用到Spring框架,也遇到各种问题,各种坑。

下面 我就列举几个有关于使用Spring过程中关于 中文乱码的情况及解决办法,希望帮助到初学Spring的小伙伴

页面显示中文乱码

姓名:

描述:

提交:

小伙伴可能会看到这种情况. 这种情况出现可能比较少,在这里也说一下 ,说这种情况主要是有些小伙伴使用jsp的时候是直接从HTML文件中拷贝的代码,可能没注意。

原因及解决方案

我们使用Eclipse 或IDEA创建出的JSP文件头部都会有

pageEncoding="UTF-8"%>

都会有** contentType="text/html;charset=UTF-8" ** ,这段一定注意,设置字符集

pageEncoding 和 contentType有什么区别?

提交到后台中文乱码

原因及解决方案

在web.xml中配置最上面配置字符集过滤器

characterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

characterEncodingFilter

/*

JSON乱码

//输入

@RequestMapping(value="/json")

@ResponseBody

public String testMap() {

Map map = new HashMap<>();

map.put("name", "中国");

map.put("age",1);

map.put("sex", "man");

return map.toString();

}

//输出

{sex=man, name=??, age=1}

原因及解决办法

Spring 默认的消息转换器StringHttpMessageConverter 中默认的编码是ISO-8859-1

public class StringHttpMessageConverter extends AbstractHttpMessageConverter {

public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");

//.......

}

RequestMapping

@RequestMapping(value="/json", produces = "application/json; charset=UTF-8")

配置xml 消息转换器

当然推荐xml配置的方式配置,一劳永逸,不用再每个方法上写produces。

当然这只是一种MessageConverter的配置。如果@ResponseBody返回的不是String, 而是User对象或Map等结构数据类型时,配置JSON相关的转换器时也需配置字符集。 使用的最新版Spring 4.3.10。发现配置JSON的时候 只有org.springframework.http.converter.json.MappingJackson2HttpMessageConverter 这个转换器了。MappingJacksonHttpMessageConverter 已经被删除了。而且MappingJackson2HttpMessageConverter父类AbstractJackson2HttpMessageConverter中默认字符集就是UTF-8.这就更加方便配置了。只要配置了JSON转换器为MappingJackson2HttpMessageConverter即可。其他属性默认即可。当然为了统一以前的写法,使项目组其他小伙伴更加清晰,建议明确在xml中配置字符集。

最终配置

application/json;charset=UTF-8

序 最近使用thymeleaf发现写的html文件展示到前端中文一直乱码。经排查需在配置解析器处添加

org.thymeleaf

thymeleaf-spring5

3.0.9.RELEASE

结语

这可能是比较常见的几种情况,若是各位小伙伴有什么其他情况的话,欢迎补充和指正。

java小黑框运行时汉字为古文,Spring使用中中文乱码的情况相关推荐

  1. Java内存区域-运行时数据区域

    Java虚拟机在运行时将内存划分为以下五个不同区域. 1.程序计数器: 是一块较小空间,可以看作是当前线程所执行的字节码行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字 ...

  2. 运行时动态的开关 Spring Security

    为什么80%的码农都做不了架构师?>>>    1. 为什么要在运行时动态的开关 Spring Security? 考虑这样一个场景,当我们构建了一整套微服务架构的系统后,公司某个内 ...

  3. c# .netframwork 4.0 调用 2.0时报错 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...

    "System.IO.FileLoadException"类型的未经处理的异常在 XXX.dll 中发生 其他信息: 混合模式程序集是针对"v2.0.50727" ...

  4. C#连接Sqlite 出现:混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。的解决方案...

    C#连接Sqlite 出现: 混合模式程序集是针对"v2.0.50727"版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集.的解决方案 C#连接s ...

  5. VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...

    看到一个kinect大牛编写的一个水果忍者的体感游戏版本,让我为自己一直以来只用现有的网页游戏来模拟kinect体感游戏控制感到惭愧,没办法,我还是菜鸟.学习一段后自己模仿星际大战这个游戏,自己写了一 ...

  6. python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题

    如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_ ...

  7. 解决ServletFileUpload上传文件时,获取上传文件名出现中文乱码问题

    解决ServletFileUpload上传文件时,获取上传文件名出现中文乱码问题 在我们使用ServletFileUpload上传文件时,我们通常会获取其上传的文件名,然而当文件名包含中文时,便可能出 ...

  8. 【Java问题】全网无法解决你的的IDEA中文乱码问题,不妨来看这篇文章

    [Java问题]全网无法解决你的的IDEA中文乱码问题,不妨来看这篇文章 1. 如果你试了所有的方法解决不了,你就默认使用GBK即可 这个方式是我试了全网几乎所有的都不行的解决方案 File -> ...

  9. 小黑框运行java_初探Java类加载机制

    初探Java类加载机制 一.在jdk1.2以后,类加载是通过委托来完成的,这意味着如果 ClassLoader 不能找到类,它会请求父代 ClassLoader 来执行此项任务,所有 ClassLoa ...

最新文章

  1. 关于K型车模同学反馈问题
  2. C#动态生成html页
  3. centos配置ftp
  4. 赚钱的方法地推拉新一定算一个
  5. 聊聊Elasticsearch的CachedSupplier
  6. IIS7和IIS8环境下 ThinkPHP专用URL Rewrite伪静态规则
  7. 这几个棘手的面试常见问题,如何高情商的回答?
  8. opencv+QT+vs 中显示图片总结
  9. 场景编程集锦 - BMI指数与健身达人
  10. Js 日期字符串分别截取 年 月 日 时 分 秒
  11. nz-zorro 主题切换 动态
  12. 32位驱动安装到64位操作系统时出错
  13. 初学者随记03:uniapp中使用阿里云小图标
  14. 神医视频消重软件,集合了消重跟视频原创制作于一体神器
  15. 用python 自动生成期权到期日的算法
  16. Java 代码开发规范
  17. ChatGPT客服系统产品-利用chatgpt训练企业知识开发个性化客服系统
  18. 操作系统真相还原——第6章 完善内核
  19. 火车模型发布模式:敏捷和稳定
  20. 阿里云AI语音技能开发训练营第二天

热门文章

  1. oracle 调整shared pool,Oracle性能调整中的Shared pool tunning要点
  2. 剑侠情缘2剑歌行电脑版怎么玩 剑侠情缘2剑歌行模拟器教程
  3. 网络心理学未来分支——人工智能心理学
  4. 量子纠缠暗示了:我们这个世界很诡异!它到底纠缠了个啥?
  5. 7-LTE QoS: SDF and EPS Bearer QoS
  6. 文字转粤语声音要怎么做?软件直接一步转换
  7. Nature | 微小的降雨变化极大地改变了植物的物种共存
  8. Windows Server 2012 R2 磁盘系统的管理-深博-专题视频课程
  9. 首个计算机Bug的由来
  10. RabbitMQ总结(一)--消息队列RabbitMQ应答模式(自动、手动)