我尝试测试一些使用scodec.bits.ByteVector
的代码。
特别是我使用ByteVector.encodeUtf8(str: String): Either[CharacterCodingException, ByteVector]
如果编码为UTF-8失败,这可能会返回潜在的错误,我必须处理错误情况。当然,我可以隐藏电话并模仿我的特质,这样我就强行归还Left[CharacterEncodingException]
,但这太麻烦了。
我喜欢做的是创建一个String
,其中包含一些无效的utf-8字节,并使用它调用encodeUtf8
。
我猜这是不可能的。无论我做什么,String类都会将任何不良条目强制转换为无意义但仍然有效的UTF-8(例如�)。这是对的吗?
这就是我尝试创建这样一个字符串的方式:
new String(Array(255.toByte), "utf-8")
我还尝试在其他一些编码中创建一个字符串,然后用它来编码为UTF-8,但是ByteVector会处理它。
这可能吗?