当运行这些代码时,它会抛出错误:
public class getRondomNumber extends AbstractJavaSamplerClient {
private int index = 0;
private static Logger logger = Logger.getLogger(getRondomNumber.class);
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyyMMddHHhhss");
String tempTime = ft.format(date);
Random rd = new Random();
String tempNum = tempTime + String.valueOf(rd.nextInt(1000));
logger.debug("debug: " + tempNum);
//logger.error("error: " + tempNum);
logger.info("info: " + tempNum);
SampleResult results = new SampleResult();
results.setSamplerData(": "+ index);
if(index%2 == 0) {
results.setSuccessful(true);
}else {
results.setSuccessful(false);
}
logger.info("This is runned.");
results.setResponseData("Result: ", tempNum);
return null;
}
}运行这些代码时,它会抛出如下错误: java.lang.StringCoding.encode(StringCoding.java:341) ~?:1.8.0_121中使用默认编码: UTF-8 java.io.UnsupportedEncodingException: 20180616121200666,使用'20180616121200666‘无法转换字符串
我的问题是如何解决这个错误。
发布于 2018-06-17 05:56:56
我参考了SampleResult setResponseData: void setResponseData(java.lang.String response,java.lang.String编码)。将我的代码更改为results.setResponseData(“结果:"+ tempNum,"UTF-8");它起作用了。
发布于 2018-06-16 04:58:43
我不知道你这么做是想做什么:
new String(tempNum.getBytes(),StandardCharsets.UTF_8)为什么不直接使用tempNum呢?
无论如何,所发生的事情是tempNum.getBytes()将tempNum作为一系列字节返回,不管您的本地默认编码是什么。
不管那是什么,显然不是八号。
您不能期望将一个字符串编码的输出生成的字节正确地用作另一个字符串编码的输入。
https://stackoverflow.com/questions/50885016
复制相似问题