RestTemplate解决乱码问题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > RestTemplate解决乱码问题

RestTemplate解决乱码问题

 2016/7/30 5:32:42  SoberChina  程序员俱乐部  我要评论(0)
  • 摘要:spring是一个非常强大的东西,其中提供了一个工具类RestTemplate主要提供http服务,RestTempalate字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8故发送到服务器端会存在中文乱码。把restTempalate中StringHttpMessageConverter默认编码设置为UTF-8具体
  • 标签:解决 问题 乱码问题
spring是一个非常强大的东西,其中提供了一个工具类 RestTemplate 主要提供http服务, RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码
把restTempalate 中 StringHttpMessageConverter 默认编码设置为UTF-8 具体:使用 restTempalate 构造函数 public RestTemplate(List> messageConverters) 传入 StringHttpMessageConverter 默认编码集是UTF-8 的转换器,
第一种 注入式:
  配置文件 :
class="xml" name="code"> <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();


        restTemplate.getMessageConverters()
                .add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

以上两种方式均可以搞定restTemplate带来的乱码问题
发表评论
用户名: 匿名