报文编码格式改为UTF-8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报文编码格式改为UTF-8相关的知识,希望对你有一定的参考价值。
参考技术A 这两天项目需要将报文以xml格式推送给核心,过程中使用到RestTemplate,并且在自己拼接xml时使用了StringBuffer;StringBuffer的.toString()是不会生成UTF-8格式的String的。
new String(sb.toString().getByte("你当前的编码方式"),"UTF-8");
这种方式我没有测试过,因为我无法确定当前的编码方式。
所以我选择的是转换为 byte[] bytes 后
String str = new String(bytes, "UTF-8");
在发送的时候,使用了RestTemplate的postForObject(),
而RestTemplate会使用StringHttpMessageConverter,其默认编码集是ISO8859-1;
此时我选择设置Http请求头:
还有方法是在xml配置文件中配置restTempalate的Bean的StringHttpMessageConverter编码;
这里由于项目原因我没法在xml配置文件中直接修改。
我使用的方法不是单例模式的,修改xml配置文件是单例模式的。
mysql改变表的编码字符集(utf8改为utf8mb4)
utf8mb4支持四字节
查看建表语句,默认编码utf8
show create table table_name;
查看表中每个字段的字符集
show full fields from table_name;
改变表的编码,为utf8mb4
alter table table_name
convert to character set utf8mb4;
以上是关于报文编码格式改为UTF-8的主要内容,如果未能解决你的问题,请参考以下文章
用java的流复制文件,并改变编码格式,由ansi改为utf-8格式