Copies bytes into a new key.
Encodes text as UTF-8.
if text holds an unpaired surrogate. Such a string has no UTF-8 encoding, and substituting a replacement character — which String.toByteArray does silently — would store a key the caller never asked for and then fail to find it again.