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")