Search code examples
scalaprotocol-buffers

Scala hex string to bytes


Is there a neat way in Scala to convert a hexadecimally encoded String to a protobuf ByteString (and back again)?


Solution

  • You can use (without additional dependencies) DatatypeConverter as:

    import com.google.protobuf.ByteString
    import javax.xml.bind.DatatypeConverter
    val hexString: String = "87C2D268483583714CD5"
    
    val byteString: ByteString = ByteString.copyFrom(
      DatatypeConverter.parseHexBinary(hexString)
    )
    
    val originalString = DatatypeConverter.printHexBinary(byteString.toByteArray)