以下是什么意思?
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");
答案 0 :(得分:1)
因此Java String在内部存储为char[]
。每个char
都是16 bits,表示Unicode字符。当您需要为该String获取byte
数组时,您需要告诉JVM如何编码这些字节。 getBytes(Chatset)
方法允许您这样做。无结构getBytes()
方法只使用Charset.defaultCharset()
。根据您选择的编码(但您应该选择正确的编码),您可能会获得不同的字节数。
您可以在此处阅读更多内容:Byte Encodings and Strings。