请求第三方接口的时候,传输中文,对方接收到的中文是乱码

请求报文:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<HEAD>
<Demo>202009100bXT3KRx</Demo>
</HEAD>
<BODY>
<page>1</page>
<rows>200</rows>
<code></code>
<company>阿里巴巴</company>
</BODY>
</ROOT>

故障场景:这样的报文经过加密之后传给对方,对方接收到加密信息,在解密的时候发现请求报文的中文变成乱码了,而且最最坑爹的是我本地IDE跑没问题,部署到tomcat才有问题

String str = 
				"\n" +
				"\n" +
				"\n" +
				"202009100bXT3KRx\n" +
				"\n" +
				"\n" +
				"1\n" +
				"200\n" +
				"\n" +
				"阿里巴巴\n" +
				"\n" +
				"";
		try {
     
			//这边getBytes()要指定编码,不然对方接受中文会出现乱码
			byte[] encData2 = str.getBytes();
		} catch (Exception e) {
     
			e.printStackTrace();
		}

最后发现我在加密前将字符串转换成字节数组的时候没有指定编码格式,最后改成这样就行了:

		byte[] encData2 = str.getBytes("UTF-8");

你可能感兴趣的:(java,java)