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='\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());

 

最后,收工!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM