带字符串的java中getBytes()的含义
以下是什么意思带字符串的java中getBytes()的含义,java,string,encoding,Java,String,Encoding,以下是什么意思 String s = "some text here"; byte[] b = s.getBytes("UTF-8"); 这是否意味着b中的内容现在使用UTF-8编码 或 我们只是从一个字符串中得到了简单的0,1字节,这个字符串是用UTF-8编码的?java中的所有字符串不是都用utf-16编码吗? 有时我也会看到以下情况: byte ptext[] = myString.getBytes("ISO-8859-1"); String value = new String(p
String s = "some text here";
byte[] b = s.getBytes("UTF-8");
这是否意味着b
中的内容现在使用UTF-8编码
或
我们只是从一个字符串中得到了简单的0,1字节,这个字符串是用UTF-8编码的?java中的所有字符串不是都用utf-16编码吗?
有时我也会看到以下情况:
byte ptext[] = myString.getBytes("ISO-8859-1");
String value = new String(ptext, "UTF-8");
b
是字节序列,在UTF-8编码中表示字符串“此处的某些文本”
<代码>字符串在内部使用UTF-16。字符集通常是在字节序列和字符串序列之间转换的方法
byte ptext[] = myString.getBytes("ISO-8859-1");
String value = new String(ptext, "UTF-8");
这看起来像是利用两个字符集在某些特定情况下具有相同编码的黑客行为,通常是不可取的。因此Java字符串在内部存储为
char[]
。每个char
都是,并表示一个Unicode字符。当需要获取该字符串的字节数组时,需要告诉JVM如何对这些字节进行编码。getBytes(Chatset)
方法允许您这样做。arglessgetBytes()
方法只使用Charset.defaultCharset()
。根据您选择的编码(但您应该选择正确的编码),您可能会得到不同的字节数
您可以在这里阅读更多内容:。Java字符串是UTF-16编码的。只有一些Unicode字符可以编码为字符串中的单个char
元素。其他必须编码为代理项对。尝试一下这个有趣的方法:System.out.println(“