zoukankan      html  css  js  c++  java
  • jmeter返回的Unicode转换成utf8

    该问题通过查找资料借鉴前辈门的经验得到了解决,记录下来是为了后面能够用到

    最近发现有些接口返回的时unicode类型的,如下图所示:

    因此只需要在jmeter中添加后置处理器:BeanShell PostProcessor,然后写上脚本可得,如下图所示:

    再次执行脚本发现问题得到了解决:

     具体代码如下:

    //获取jmeter响应结果
    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++);
    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());
  • 相关阅读:
    NOIP2013 花匠解题报告
    (3) 深入理解SELinux SEAndroid(第三部分
    (2) 深入理解SELinux SEAndroid(第二部分)
    (1) 深入理解SELinux SEAndroid(第一部分)
    SELinux深入理解
    SELinux策略语言--类型强制(编写TE规则)
    Android 6.0中SELinux的TE简介
    8250_fintek
    run "setprop ctrl.start wpa_supplicant" manually
    AOSP Nougat
  • 原文地址:https://www.cnblogs.com/weimeizhizuo/p/10918374.html
Copyright © 2011-2022 走看看