我可以使用字符串代替用新String(字节)制作的字节数组吗?我想把它们保存到数据库中。我以字节为单位计算了md5哈希值。
答案 0 :(得分:4)
不,String
不适合作为任意字节的容器。
String(byte[] bytes)
构造函数将使用系统的默认字符编码解释传递给它的数组并将其转换为字符。如果字节数组包含对字符编码无效的字节序列,并且即使它在没有异常的情况下工作,那么这可能会引发异常,因此无法保证在getBytes()
上调用String
完全相同的字节。
如果要在数据库中存储字节数组,请将其存储为BLOB(二进制大对象),或者,如果您确实要将其存储为字符串,则使用例如Base64编码将其转换为文本或作为十六进制数字。