gpt4 book ai didi

findbugs - 发现依赖默认编码

转载 作者:行者123 更新时间:2023-12-03 06:02:21 25 4
gpt4 key购买 nike

我从 FindBugs 收到以下错误,

在 MyClass.print(String): String.getBytes() 中发现对默认编码的依赖

方法

protected void print (String str) {
{
private OutputStream outStream = null;
.....
outStream.write(str.getBytes());
.......
}

错误是什么,如何解决?

最佳答案

将字符串编码为字节有不同的方法——字符集决定编码。如果您没有指定字符集(如调用str.getBytes()),它将使用系统默认值。

FindBugs 警告您这一点,因为您应该考虑要为输出使用什么编码。如果您正在写入文件,该文件的读者期待什么?如果您可以为文件指定显式编码,这样您就不会以一种方式编写它并以另一种方式读取它,这是最安全的。

要指定显式字符集,请使用 str.getBytes(Charset.forName("UTF-8"))。 UTF-8 是一个不错的选择,因为它始终受到支持并且可以对任何字符进行编码。

例如,.properties 文件始终为 ISO 8859-1(即 Latin-1)。这是有记录的,因此对于使用什么编码没有任何歧义。

关于findbugs - 发现依赖默认编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com