<分区>
我意识到这个问题可能很愚蠢,但是,嘿,糟糕的一天。无论如何,鉴于此:
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 表示。