在findbugs中,我在theis部分有几个交战:DEFAULT_ENCODING 看起来我必须添加编码代码“UTF-8”来解决它。
说明是:
找到一个方法的调用,该方法将对String执行一个字节(或 字符串到字节)转换,并将假定为默认平台 编码是合适的。这将导致应用程序行为 因平台而异。使用备用API并指定charset 明确地命名或Charset对象。
他们对替代API的意义是什么? (使用备用API并明确指定charset名称或Charset对象。)
如何修复此警告?
Reader reader = null;
try {
reader = new FileReader(store);
答案 0 :(得分:1)
这完全取决于产生数据的内容以及将要使用的内容。备用API使用的方法允许您指定Charset,charset name或locale。没有自动修复代码的方法。
作为程序员,您必须检查数据的上下文并选择正确的字符集或区域设置。大多数平台上的默认设置通常是正确的选择,但FindBugs会警告您默认的可能因平台而异。要解决此警告,您必须提供您认为的原始背景' raw'或者' plain'数据通过指定显式字符集。
例如,
reader = new FileReader(store, "UTF-8");
要深入了解该问题,请查看 The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)和Turkish i bug。