报文编码格式改为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格式

Windows10cmd编码格式改为UTF-8

xml已经指定了UTF-8编码格式仍然导出中文乱码

怎么把win10的txt文件将默认格式从UTF-8改为ANSI?

jmeter 请求参数中有中文,post过去后乱码

IDEA - 设置所有文件编码为UTF-8格式