Jmeter json格式 unicode亂碼現象解決方法

weixin_34402408發表於2018-12-17

新建 BeanShell PostProcessor

在Script 中加入如下程式碼:

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++);f

                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());

相關文章