由于某种原因,我必须用汉字解码字符串。像这样 “\ u961c”,这个字符串是“阜”的utf-8
我知道如何将bytes []解码为Unicode字符。但是有一种简单的方法可以将String解码为Unicode字符吗?
顺便说一下,当我得到“阜”.getBytes。我得到-100,-104,-23。 这意味着
1001110 10010100 11101001二进制文件?
但我认为Unicode应该是二进制的1001 0110 0001 1100或其他东西
它的utf-8格式应为11101001 10011000 10011100二进制
答案 0 :(得分:0)
在Java中,没有这样的方法来编码String
对象(不完全准确,有编码,但那是UTF-16)。
唯一的方法是编码为byte[]
。因此,如果您需要UTF-8数据,则需要byte[]
。如果您的String
包含意外数据,那么问题就出现在某些错误地将某些二进制数据转换为String
的地方(即使用了错误的编码)。
这个适用,但适用于bytes[]
Charset.forName("UTF-8").encode(myString)