我知道这个问题可能很愚蠢,但是今天过得很糟糕。无论如何,考虑到这个:
scala> import java.nio.charset.Charset
import java.nio.charset.Charset
scala> val alpha = Array[Byte](2,-9,-7,-126,-36,-41,-16,56)
alpha: Array[Byte] = Array(2, -9, -7, -126, -36, -41, -16, 56)
scala> val beta = new String(alpha, Charset.forName("UTF-8"))
beta: String = ?������8
scala> val gamma = beta.getBytes(Charset.forName("UTF-8"))
gamma: Array[Byte] = Array(2, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, 56)
为什么
alpha == gamma
不成立?正确的做法是什么?更新:我发现Base64编码/解码可以工作。但我仍然想知道为什么UTF-8不行。可能是因为这些字节中没有一个或多个的UTF-8表示形式。