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

pre*_*res 7 arrays string byte sonarqube

我遇到了一个反复出现的声纳问题“删除构造函数“String(byte[])”的使用。示例之一是以下代码:

 byte[] d = c.doFinal(e);
 return new String(d);
Run Code Online (Sandbox Code Playgroud)

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

Gur*_*rey 7

声纳 说:

使用依赖于默认系统编码的类和方法可以使代码在其“家庭”环境中正常工作。但是,对于使用不同编码的客户来说,该代码可能会被破坏,这些编码方式极难诊断,并且在需要修复它们时几乎(如果不是完全)不可能重现。

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

您可以在这里阅读更多相关信息:https://gazelle.ihe.net/sonar/coding_rules#rule_key=squid%3AS1943