一般乱码有两种方法来解决:
1、修改配置文件jmeter.properties中默认编码格式ISO-8859-1(不支持中文),修改为utf-8
sampleresult.default.encoding = utf-8
2、添加BeanShell PostProcessor加入
prev.setDataEncoding("utf-8")
3、还有一种返回 \uxxxx 本身就是unicode编码内容,这时需要对返回信息重新编码即可:
3.1、添加BeanShell PostProcessor,并加入如下代码:
String s=new String(prev.getResponseData(),"UTF-8");char aChar;int len= s.length();StringBuffer outBuffer=new StringBuffer(len);for(int x =0; x <len;){aChar= s.charAt(x++);if(aChar=='\\'){aChar= s.charAt(x++);if(aChar=='u'){int value =0;for(int i=0;i<4;i++){aChar= s.charAt(x++);switch(aChar){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':value=(value <<4)+aChar-'0';break;case'a':case'b':case'c':case'd':case'e':case'f':value=(value <<4)+10+aChar-'a';break;case'A':case'B':case'C':case'D':case'E':case'F':value=(value <<4)+10+aChar-'A';break;default:throw new IllegalArgumentException("Malformed \\uxxxx encoding.");}}outBuffer.append((char) value);}else{if(aChar=='t')aChar='\t';else if(aChar=='r')aChar='\r';else if(aChar=='n')aChar='\n';else if(aChar=='f')aChar='\f';outBuffer.append(aChar);}}elseoutBuffer.append(aChar);}prev.setResponseData(outBuffer.toString());