`
SoberChina
  • 浏览: 77297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RestTemplate解决乱码问题

    博客分类:
  • java
阅读更多
spring是一个非常强大的东西,其中提供了一个工具类 RestTemplate 主要提供http服务, RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码 。
把restTempalate 中 StringHttpMessageConverter 默认编码设置为UTF-8 具体:使用 restTempalate 构造函数 public RestTemplate(List> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器,
第一种 注入式:
  配置文件 :
 <bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
       	<constructor-arg index="0">
       		<list>
       			<bean id="byteArrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean>
       			<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
       				<constructor-arg value="UTF-8"></constructor-arg>
       			</bean>
       			<bean id="resourceHttpMessageConverter" class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean>
       			<bean id="sourceHttpMessageConverter" class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>
       			<bean id="allEncompassingFormHttpMessageConverter" class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"></bean>
       			<bean id="jaxb2RootElementHttpMessageConverter" class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean>
       			<bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
       		</list>
       	</constructor-arg>
   	</bean>


这样需要spring注入进来才可以,

第二种 非注入式:使用 设置Http请求头中设置  charset=UTF-8 修改默认编码,这样是提供new 的方法 设置编码
RestTemplate restTemplate = new RestTemplate();
    StringHttpMessageConverter stringHttpMessageConverter=newStringHttpMessageConverter(Charset.forName("UTF-8"));  
    List<HttpMessageConverter<?>> list=new ArrayList<HttpMessageConverter<?>>(); 
    list.add(stringHttpMessageConverter);
    restTemplate.setMessageConverters(list);   

以上两种方式均可以搞定restTemplate带来的乱码问题,但是spring 单例的有点第二种没有凸显出来,所以选择第一种还是比较靠谱的。
分享到:
评论

相关推荐

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    在IT领域,乱码问题是一个常见的困扰,尤其是在处理文本数据时。...乱码问题虽然麻烦,但只要了解其产生原因,掌握解决方法,就能有效地应对。在日常工作中,保持良好的编码习惯和规范的操作流程,是预防乱码的关键。

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    FORM表单中文乱码问题分析与解决

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

    Linux系统中文乱码解决完整方案

    * 使用 Putty 代替 Secure Shell Client 可以解决中文乱码问题,但不能彻底解决问题。 * 修改 Linux 系统的默认字符集可以彻底解决中文乱码问题。 * 安装 Linux 系统时,采用默认的英文安装,而不要使用中文。 * ...

    解决web项目中出现的乱码问题,很方便

    本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以有效地解决乱码问题。 首先,我们要理解乱码产生的原因。在Web应用中,乱码通常发生在以下几个环节: 1. **请求...

    java web开发解决乱码问题

    ### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...

    解决linux下oracle中文乱码问题,添加中文支持

    解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    解决Ubuntu和Windows的文件乱码问题

    本文详细介绍了如何解决Ubuntu和Windows在处理文件时发生的乱码问题。 首先,我们需要了解文件乱码的原因。Windows系统中的许多纯文本文件(包括压缩文件)默认使用GBK编码,这是一种针对中文字符的扩展字符集。当...

    springboot乱码问题解决方案

    SpringBoot乱码问题解决方案 SpringBoot框架是一款流行的Java Web开发框架,但是在实际开发中,开发者经常会遇到乱码问题,导致项目无法正常运行。为了解决这个问题,本文将详细介绍SpringBoot乱码问题解决方案,并...

    java中文乱码问题解决

    "Java中文乱码问题解决" Java中文乱码问题是Java开发中常见的问题,尤其是在Web开发中,乱码问题会导致页面显示混乱,影响用户体验。解决乱码问题需要了解编码的基本原理和各种编码格式的区别。 编码的原因可以...

    配置web-xml解决中文乱码问题.pdf

    配置 Web.xml 解决中文乱码问题 本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些...

    解决中文乱码问题

    "解决中文乱码问题" 在Java编程中,中文乱码是一个常见的问题。为了解决这个问题,我们需要从多个方面入手。首先,我们需要将Eclipse的编码方式设置为UTF-8,以便正确地显示中文字符。其次,我们需要在浏览器中将...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    java乱码问题解决方法

    Java 乱码问题是 Java 开发中常见的问题之一,解决这个问题需要了解 Java 的编码方式、JSP 中文乱码问题、Tomcat 5.5 中文乱码问题、JDBC ODBC Bridge 的 Bug 及其解决方法、Solaris 下 Servlet 编程的中文问题及...

    使用过滤器解决中文乱码问题

    ### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...

    IDEA groovy生成实体解决乱码问题

    IDEA groovy生成实体解决乱码问题

    jsp 过滤器——解决中文乱码问题

    ### jsp过滤器——解决中文乱码问题 #### 背景介绍 在Web应用开发过程中,特别是使用Java Server Pages (JSP)进行中文字符处理时,经常遇到的一个问题是中文字符显示为乱码。这主要是因为客户端与服务器端之间存在...

    Java生成pdf文件,解决中文乱码问题.pdf

    Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...

Global site tag (gtag.js) - Google Analytics