Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带字符串的java中getBytes()的含义_Java_String_Encoding - Fatal编程技术网

带字符串的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)
方法允许您这样做。argless
getBytes()
方法只使用
Charset.defaultCharset()
。根据您选择的编码(但您应该选择正确的编码),您可能会得到不同的字节数


您可以在这里阅读更多内容:。

Java字符串是UTF-16编码的。只有一些Unicode字符可以编码为字符串中的单个
char
元素。其他必须编码为代理项对。尝试一下这个有趣的方法:
System.out.println(“