http传json时遇到的编码格式问题
因为之前使用Postman对接口文档进行测试,没有出现问题,自己便开始用java实现post请求,因为之前自己写过类似的程序,所以直接将原来的代码复制过来使用,这一用,就让我找了一下午的原因,不过还好自己以后就不会犯这种低级错误了。
一、文本文件编码格式问题介绍和解决
下面就是我错误的地方,在post请求中忘记这个项目实际采用的是GBK编码,所以传值一定要传GBK格式而不是UTF-8。
下面是一个检测json编码的方法,我是通过该方法才明白自己的错误是因为传过去的GBK,而我去将它以UTF-8格式传递,那传过去就是错误,接收方必然报错
//判断输入的编码格式
public String encodeTest(String json){
String xml=json;
String encode = "GB2312";
try {
if (xml.equals(new String(xml.getBytes(encode), encode))) { //判断是不是GB2312
String s = encode;
return s; //是的话,返回“GB2312“,以下代码同理
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (xml.equals(new String(xml.getBytes(encode), encode))) { //判断是不是ISO-8859-
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "UTF-8";
try {
if (xml.equals(new String(xml.getBytes(encode), encode))) { //判断是不是UTF-8
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = "GBK";
try {
if (xml.equals(new String(xml.getBytes(encode), encode))) { //判断是不是GBK
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return ""; //如果都不是,说明输入的内容不属于常见的编码格式。
}
下面是我的测试代码
输出为
将编码格式改为GBK一下子就好了,外事办就直接返回200成功和ID,没有报错信息。
二、更改文件文本编码格式其他方法
通过更改整一个ICE的文本文件编码格式,达到效果
或者通过修改单个项目文本文件编码格式达到自己想要的效果