小编igi*_*ffe的帖子

java中如何从不同字节数据中获取相同的字符串?

我在Java中将字节转换为UTF8字符串时发现了一个奇怪的问题。为什么bytes1和bytes2不同,而str1和srt2相同?

这是测试代码。

import org.apache.commons.codec.binary.Hex;

public class MyTest {
    public static void main(String[] args) throws Exception {
        byte[] bytes1 = Hex.decodeHex("EDA0BDEDB88A".toCharArray());
        byte[] bytes2 = Hex.decodeHex("F09F988A".toCharArray());

        System.out.println("bytes1 length: " + bytes1.length);
        System.out.println("bytes2 length: " + bytes2.length);

        String str1 = new String(bytes1, "utf8");
        String str2 = new String(bytes2, "utf8");

        System.out.println("str1 is equals str2? " + str1.equals(str2));
    }
}
Run Code Online (Sandbox Code Playgroud)

这是在jdk7上运行的测试代码的输出

bytes1 length: 6
bytes2 length: 4
str1 is equals str2? true
Run Code Online (Sandbox Code Playgroud)

是否可以找出“EDA0BDEDB88A”和“F09F988A”之间的关系?

“F09F988A”是unicode smailface,但“EDA0BDEDB88A”未知。

java byte utf-8

5
推荐指数
1
解决办法
256
查看次数

标签 统计

byte ×1

java ×1

utf-8 ×1