由于某种原因,我必须解码中文字符串。像这样 “\u961c”,该字符串是“阜”的utf-8
我知道如何将 bytes[] 解码为 Unicode 字符。但是有没有一种简单的方法将 String 解码为 Unicode 字符?
顺便说一句,当我得到“阜”时。getBytes。我得到-100、-104、-23。 是不是这个意思
1001110 10010100 11101001 二进制?
但我认为\u961c 它的utf-8格式应该是二进制的11101001 10011000 10011100
最佳答案
在Java中,没有这样的方法来编码String
对象(不完全准确,有一种编码,但那是UTF-16)。
唯一的方法是编码为byte[]
。因此,如果您需要 UTF-8 数据,那么您需要一个 byte[]
。如果您的 String
包含意外数据,则问题出在较早的某个位置,错误地将某些二进制数据转换为 String
(即,它使用了错误的编码) .
这个可以工作,但是对于bytes[]
Charset.forName("UTF-8").encode(myString)
关于java - 如何将utf-8格式的字符串(不是bytes[])解码为java中的另一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35858061/