Scala での String と Array[Byte] の相互変換
Scala
文字コード
Scala で String と Array[Byte] の間を相互に変換する方法です。
文字コードを指定しない場合
Array[Byte] から String に変換する時には String class のコンストラクタを利用します。
val bytes = Array[Byte](0x41, 0x42, 0x43)
new String(bytes)
// "ABC"String から Array[Byte] を得るには String class の getBytes() メソッドを利用します。
"ABC".getBytes()
// Array[Byte](0x41, 0x42, 0x43)文字コードを指定する場合
文字コードを指定して Array[Byte] から String に変換する時には String のコンストラクタに文字コードを渡します。
import java.nio.charset.StandardCharsets
val bytes = Array[Byte](0x41, 0x42, 0x43)
new String(bytes, StandardCharsets.UTF_8)文字コードを指定して String から Array[Byte] を得るには String class の getBytes() メソッドに文字コードを渡します。
import java.nio.charset.StandardCharsets
"----".getBytes(StandardCharsets.UTF_8)文字コードに Shift_JIS を利用する場合
StandardCharsets には Shift-JIS が含まれませんが、文字セット名 "SJIS" を直接指定して利用することができます。
"----".getBytes("SJIS")
new String(bytes, "SJIS")