【发布时间】:2021-04-12 06:02:03
【问题描述】:
如何解决这个声纳问题?
File file = new File("/some directory");
Scanner scanner = new Scanner(file);
移除对构造函数“Scanner(file)”的这种使用
【问题讨论】:
标签: java sonarqube java.util.scanner sonarqube-scan
如何解决这个声纳问题?
File file = new File("/some directory");
Scanner scanner = new Scanner(file);
移除对构造函数“Scanner(file)”的这种使用
【问题讨论】:
标签: java sonarqube java.util.scanner sonarqube-scan
rule 说:
不应使用依赖于默认系统编码的类和方法
使用依赖于默认系统编码的类和方法可以使代码在其“家庭”环境中正常工作。但是,对于使用不同编码方式的客户,该代码可能会以极难诊断的方式出现故障,并且在修复它们时几乎(如果不是完全的话)不可能重现。
要解决此问题,您应该使用包含Charset 的构造函数。例如,Scanner(File, Charset) 构造函数。你应该指定你想要的字符集。
File file = new File("/some directory");
Scanner scanner = new Scanner(file, StandardCharsets.UTF_8); // as an example
【讨论】: