如何将utf-8格式的字符串(而不是bytes [])解码为java中的另一个字符串?

时间:2016-03-08 02:54:21

标签: java unicode encoding utf-8

由于某种原因,我必须用汉字解码字符串。像这样 “\ u961c”,这个字符串是“阜”的utf-8

我知道如何将bytes []解码为Unicode字符。但是有一种简单的方法可以将String解码为Unicode字符吗?

顺便说一下,当我得到“阜”.getBytes。我得到-100,-104,-23。 这意味着

1001110 10010100 11101001二进制文件?

但我认为Unicode应该是二进制的1001 0110 0001 1100或其他东西

它的utf-8格式应为11101001 10011000 10011100二进制

1 个答案:

答案 0 :(得分:0)

在Java中,没有这样的方法来编码String对象(不完全准确,有编码,但那是UTF-16)。

唯一的方法是编码为byte[]。因此,如果您需要UTF-8数据,则需要byte[]。如果您的String包含意外数据,那么问题就出现在某些错误地将某些二进制数据转换为String的地方(即使用了错误的编码)。

这个适用,但适用于bytes[]

Charset.forName("UTF-8").encode(myString)