字符串包含多少字节?

时间:2014-10-21 14:17:56

标签: java string unicode utf-8

public class ClassToTestSnippets {

    private static ClassToTestSnippets ctts;

    public static void main(String[] args) {
        ctts = new ClassToTestSnippets();
        ctts.testThisMethod();
    }

    public void testThisMethod() {
        System.out.println("\u2014".length()); //answer is 1
    }
}

上面的代码打印1.但是\u2014E2 80 94,即3个字节。我如何知道字符串包含多少字节?

2 个答案:

答案 0 :(得分:9)

取决于。你想用什么编码?

System.out.println("äö".getBytes("UTF-8").length);

打印4,但如果我将UTF-8更改为ISO-8859-1(例如),则会打印2.其他编码可能会打印其他值(尝试UTF-32)。

答案 1 :(得分:4)

内部 - 它包含(字符数)* 2个字节,因为Java中的每个char占用两个字节(Java中的普通字符是16位unicode)。实际字节是0x20和0x14。

但是,length函数返回字符数,而不是字节数。