问题描述:安全工具扫描问题,发现对默认编码的依赖:new String(byte[])。
解决方法:
byte[] data = ...; // 从某处获取字节数组
String str = new String(data, "UTF-8"); // 使用UTF-8编码解析字节数组
byte[] data = ...; // 从某处获取字节数组
Charset charset = Charset.forName("UTF-8"); // 指定字符编码
String str = new String(data, charset); // 使用指定的字符编码解析字节数组
byte[] data = ...; // 从某处获取字节数组
String str = new String(data, Charset.defaultCharset()); // 使用默认编码解析字节数组
需要注意的是,使用默认编码可能会导致在不同环境下表现不一致,因此最好是明确指定字符编码。