☯☯☯☯☯☯没有期望 何来失望 做一只快乐的咸鱼 - 北陌☯☯☯☯☯☯

jmeter返回结果出现乱码

这是我的问题:

请求的百度地址,返回的数据是中文乱码

 

去jmeter安装目录的bin下:

修改配置文件jmeter.properties

右键打开 ,查找:sampleresult.default.encoding

这个参数是注释状态,默认的也不是utf-8

去掉注释 ,改成utf-8 ,重启jmeter

然后在重新访问,解决

 

 

这是第一种乱码情况 。

 

 

还有第二种乱码情况,许多接口返回结果中message都是中文 , 返回的内容是进制那种类型,反正不是中文

 

点击线程组右键

 

 

添加以下代码

//获取响应代码Unicode
String s2=new String(prev.getResponseData(),"UTF-8");
//转码过程
char aChar;
int len= s2.length();
StringBuffer outBuffer=new StringBuffer(len);
for(int x =0; x <len;){
aChar= s2.charAt(x++);
if(aChar=='\\'){
aChar= s2.charAt(x++);
if(aChar=='u'){
    int value =0;
    for(int i=0;i<4;i++){
        aChar= s2.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);}}else
outBuffer.append(aChar);}
//将转成中文的响应结果在查看结果树中显示
prev.setResponseData(outBuffer.toString());

 

 

接下来再去请求就没问题了

posted @ 2019-06-12 15:03  Mr、北陌  阅读(259)  评论(0编辑  收藏  举报