Kotlinでバイトアレイを文字列に変換する
この記事では、Kotlinでバイトアレイを文字列に変換するさまざまな方法について説明します。
バイトアレイはバイナリデータを格納するのに対し、Kotlin文字列はテキストデータを格納するために使用されるため、バイトアレイと文字列の間の変換は避けるのが最善です。ただし、それでも必要な場合は、次の方法を使用して、Kotlinでバイトアレイを文字列に変換できます。
1.ASCII文字セット
バイトアレイをStringコンストラクターに直接渡すことができます。このコンストラクターは、指定されたバイトアレイから文字にデータを変換します。デフォルトを指定できます UTF-8
文字エンコード、またはASCII文字セットの場合はスキップします。
1 2 3 4 5 6 7 |
fun main() { val bytes = byteArrayOf(75, 111, 116, 108, 105, 110) val string = String(bytes) println(string) // Kotlin } |
2.非ASCII文字セット
上記の解決策は、ASCII文字セットに対して正常に機能します。非ASCII文字セットの場合、バイトシーケンスへの変換中に使用される元のエンコーディングを明示的に指定する必要があります。
次のプログラムについて考えてみます。ここでは、バイトアレイは次のようにエンコードされています。 UTF-16
。バイトアレイをデコードするには、 UTF-16
文字セットはStringコンストラクターに指定されます。
1 2 3 4 5 6 7 8 |
fun main() { //バイトアレイはUTF-16でエンコードされます val bytes = byteArrayOf(-2, -1, 0, 75, 0, 111, 0, 116, 0, 108, 0, 105, 0, 110) val string = String(bytes, Charsets.UTF_16) println(string) // Kotlin } |
Kotlinでバイトアレイを文字列に変換するのはこれですべてです。