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