我正在开发一个 spring boot
应用,并需要使用 IOUtils
提供的 toByteArray
方法,但它已被弃用。在 spring boot
应用中,是否可以安全地使用 string.getBytes()
方法,或者还有其他方法可以从文本内容中获取字节?
我正在开发一个 spring boot
应用,并需要使用 IOUtils
提供的 toByteArray
方法,但它已被弃用。在 spring boot
应用中,是否可以安全地使用 string.getBytes()
方法,或者还有其他方法可以从文本内容中获取字节?
最好使用以下方法:
string.getBytes("UTF-8");
最好指定编码,否则可能会使用默认的平台特定编码,如果您有无法在默认编码中表示的字符(如阿拉伯语/中文/印地语字符),则可能会创建意外结果。
UTF-8是最好的、紧凑的编码之一,覆盖了其他语言和表情符号中的数百万个字符。
它是等效的,有两个原因:
如果您查看实施:
/** @deprecated */
@Deprecated
public static byte[] toByteArray(String input) throws IOException {
return input.getBytes();
}
getBytes()
实际上是被调用的。
但这并不是 安全 的,因为它假设您想要使用平台默认字符集中的字节。您应该始终指定一个字符集。
IOUtils.toByteArray(Reader, Charset)
代替。https://commons.apache.org/proper/commons-io/javadocs/api-2.5/deprecated-list.html - Sam