带字符串的java中getBytes()的含义

时间:2015-09-08 19:44:25

标签: java string encoding

以下是什么意思?

String s = "some text here";
byte[] b = s.getBytes("UTF-8");

是否意味着,b中的内容现在使用UTF-8进行编码 要么 我们刚刚从字符串中得到简单的0,1字节,这是用UTF-8编码的? Aren在utf-16编码的java中的所有字符串? What is the Java's internal represention for String? Modified UTF-8? UTF-16?

有时我也会看到以下内容:

byte ptext[] = myString.getBytes("ISO-8859-1"); 
String value = new String(ptext, "UTF-8"); 

1 个答案:

答案 0 :(得分:1)

因此Java String在内部存储为char[]。每个char都是16 bits,表示Unicode字符。当您需要为该String获取byte数组时,您需要告诉JVM如何编码这些字节。 getBytes(Chatset)方法允许您这样做。无结构getBytes()方法只使用Charset.defaultCharset()。根据您选择的编码(但您应该选择正确的编码),您可能会获得不同的字节数。

您可以在此处阅读更多内容:Byte Encodings and Strings