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

标签 java unicode encoding utf-8

由于某种原因,我必须解码中文字符串。像这样 “\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/

相关文章:

php - mysqli 没有将字符集设置为 utf8mb4

java - 在java主机上写文件

模式中包含\Uxxxxxxxx 字符的 C# 正则表达式

javascript - 如何在 cookie 中存储其他语言 (unicode) 并再次取回

mysql - SQLite 和 MySQL 中使用 Unicode 代码点的 SQL 查询

.net - 如何在不丢失奇数字符的情况下读取文本文件?

java - 是否可以使用Java将卡夫卡消费者收到的输出写入文件

java - 我使用Spring+MongoDB,当我执行查询方法时,它抛出java.lang.ClassNotFoundException : com. mongodb.MongoException$DuplicateKey

java - Android - 停止来自不同类的服务

php - 在 MYSQL 表中插入时主题行的值发生变化