1
私はこの質問がおそらくばかげていることを理解していますが、ちょっと荒い日です。とにかく、これを与えられた:バイト配列を文字列に変換して戻す
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がなぜそうでないかに興味があります。おそらく、1つ以上のバイトのUTF-8表現がないためです。