声纳问题:删除使用String(byte [])

时间:2017-11-15 11:50:09

标签: arrays string sonarqube byte

我有一个反复出现的声纳问题“删除这个构造函数的使用”字符串(byte [])“。 其中一个例子是以下代码:

 byte[] d = c.doFinal(e);
 return new String(d);

我不知道为什么会出现这种情况。欢迎任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

索纳说:

  

使用依赖于默认系统编码的类和方法可以   导致代码在其“home”环境中正常工作。但那   代码可能会因使用不同编码的客户而中断   是非常难以诊断的,如果不是完全的话,几乎是   在修理它们的时候无法重现。

您应该使用String(byte bytes[], Charset charset)构造函数

您可以在此处详细了解:https://gazelle.ihe.net/sonar/coding_rules#rule_key=squid%3AS1943