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