心路历程:

在Controller中return 对象的时候,对象中的属性值中文部分在浏览器中 显示为问号??

然后结果是这样的:??

尝试排查原因:

中文乱码常有以下三种:

1.request、response里面的这个编码设置
2.Tomcat 编码设置
3.数据库编码设置

逐一排查:首先我直接return “中文”;结果还是乱码。数据库编码   排除;

然后我写了个过滤器:

  1. @WebFilter(filterName = "myFilter", urlPatterns = "/*")
  2. public class MyFilter implements Filter {
  3. @Override
  4. public void destroy() {
  5. System.out.println("过滤器销毁");
  6. }
  7. @Override
  8. public void doFilter(ServletRequest request, ServletResponse response,
  9. FilterChain chain) throws IOException, ServletException {
  10. System.out.println("执行过滤操作");
  11. response.setCharacterEncoding("UTF-8");
  12. System.out.println(response.getCharacterEncoding());
  13. request.setCharacterEncoding("UTF-8");
  14. System.out.println(request.getCharacterEncoding());
  15. chain.doFilter(request, response);
  16. }
  17. @Override
  18. public void init(FilterConfig config) throws ServletException {
  19. System.out.println("过滤器初始化");
  20. }
  21. }

失败,返回依然是乱码;

接着尝试:

return new String("中文".getBytes(), "UTF-8");

失败,返回依然是乱码;

接着尝试:

produces = { "application/json;charset=UTF-8" }

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

成功是成功了,可是这样感觉很奇怪,总不能每一个RequestMapping 都这样注解吧。

然后我就发现我封装的jsonVO中使用的是fastjson 会不会是这个问题呢?

springboot 引入的json是 Jackjson,撞墙的想法都有了。

果断处理:Application extends WebMvcConfigurerAdapter

重写方法。

  1. @Override
  2. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  3. super.configureMessageConverters(converters);
  4. FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
  5. FastJsonConfig fastJsonConfig = new FastJsonConfig();
  6. fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
  7. fastConverter.setFastJsonConfig(fastJsonConfig);
  8. converters.add(fastConverter);
  9. }

可以了。

如果觉得继承这个WebMvcConfigurerAdapter类影响你继承其他类,也可以写个@bean 放在Application  中

retunr    HttpMessageConverter 类型就好;

总结:

1.添加  produces = { "application/json;charset=UTF-8" }

2.重写configureMessageConverters方法;

3.@bean  HttpMessageConverter ;

分享知识-快乐自己:spring_Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson的更多相关文章

  1. 避免css中文字体在浏览器中解析成乱码

    许多童鞋在写CSS的时候,设置中文字体常常使用中文字符,例如font-family:”黑体”,这样我们在浏览器中看到的是什么样子的呢 ? 如果不想自己写的界面在浏览器字体声明上有异常,建议在书写css ...

  2. servlet中通过getWriter()获取out返回给浏览器出现中文乱码问题

    感谢博主https://blog.csdn.net/louyongfeng3613/article/details/50160317 在Servlet编程中,经常需要通过response对象将一些信息 ...

  3. jquery ajax 返回值 中文时乱码或变成问号解决方法

    转载自jquery的 ajax返回值为中文时乱码解决方法 用jquery的ajax,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了 ...

  4. 解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器

    解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器 让Apache支持SHTML(SSI)的配置方法 http.conf放开addtype text/html .shtm ...

  5. JMeter中文返回乱码

    JMeter中文返回乱码 结果树响应数据中文返回乱码 其实有几个方法: 在线程组->http请求的字符集里设置 ​ 在http 消息管理头中设置 ​ 3.如果以上方法还没有解决,请打开安装目录 ...

  6. jmeter返回结果是乱码及Unicode转中文

    1.结果树中有乱码的处理方式 到bin目录下面修改jmeter的配置文件 使用jmeter进行压测时,如果响应数据的返回结果有乱码,则修改jmeter.properties文件中的该字段的值改为utf ...

  7. 分享知识-快乐自己:SpringMVC 底层执行原理解析

    底层实现原理图: 观看底层代码: 1):打开 web.xml 文件  2):按住 Ctrl + 鼠标左键 进入底层查看源码   3):按住 Ctrl+o 找到对应的方法doDispatch   5): ...

  8. ASP.NET开发在JavaScript有中文汉字时出现乱码时简单有效的解决

    一般情况在使用ASP.NET开发使用JavaScript有中文汉字时不会出现乱码情况,比如:alert('您看到我了吗?');这样直接输入中文汉字的代码中是不会出现乱码的,如果出现了,一是检查Web. ...

  9. iphone 浏览器自动解析数字为号码解决方法

    iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn  网友分享于:2015-10-09  浏览:0次   iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...

随机推荐

  1. vuex Payload 荷载

    1.payload payload:有效载荷,即记录有效信息的部分. 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如这一批数据量的大小 ...

  2. (转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义

    1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以 ...

  3. js:Razor视图下服务器代码给Javascript变量赋值

    namespace Razor.Controllers { public class JSController : Controller { public ActionResult Index() { ...

  4. Ubuntu14.04 x86_64 install Xen

    Recommended reference: https://help.ubuntu.com/community/Xen Step One: Install Ubuntu14.04 on your c ...

  5. View的滚动原理简单解析

    一直对View的滚动了解的不深,说明确了吧也能说出个所以然来,所以我就花了点时间做了一个小小的总结,言归正传,view的滑动分为下面三种: 1)View本身不滚动,指滚动View的内容,这也是View ...

  6. css 使表格随着内容自动适应宽度

    所谓难而不会,会儿不难.这个问题让我纠结了很长时间,一句css解决了,仅仅靠一个属性 td { white-space: nowrap; }

  7. Spring Resource框架体系介绍

    Resource介绍 在使用spring作为容器进行项目开发中会有很多的配置文件,这些配置文件都是通过Spring的Resource接口来实现加载,但是,Resource对于所有低级资源的访问都不够充 ...

  8. linux下的显示有中国农历的日历ccal

    1.linux下的显示有中国农历的日历ccal

  9. 【Selenium + Python】之如何获取最新的报告以及os.path.getmtime与os.path.getctime的区别

    import os def new_file(test_dir): #列举test_dir目录下的所有文件(名),结果以列表形式返回. lists=os.listdir(test_dir) #sort ...

  10. gdb ../sysdeps/i386/elf/start.S: No such file or directory

    使用 gdb 调试的时候 输入 l 之后出现下列信息 (gdb) l 1 ../sysdeps/i386/elf/start.S: No such file or directory. in ../s ...