jmeter响应的二进制数据转化为中文

有时候得到的响应数据为unicode的,需要转码,步骤如下:

一、添加后置处理器

二、在script处输入代码

代码如下:

//获取响应代码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='	';
	else if(aChar=='r')
	aChar='
';
	else if(aChar=='n')
	aChar='
';
	else if(aChar=='f')
	aChar='f';
	outBuffer.append(aChar);}}else
outBuffer.append(aChar);}
//将转成中文的响应结果在查看结果树中显示
prev.setResponseData(outBuffer.toString());

最后,收工!

原文地址:https://www.cnblogs.com/zhaoquanmo/p/10484562.html