Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 是char';A';在所有平台和编码下始终为65?_Java_Encoding - Fatal编程技术网

Java 是char';A';在所有平台和编码下始终为65?

Java 是char';A';在所有平台和编码下始终为65?,java,encoding,Java,Encoding,是否总是char ch='A'具有独立于平台的值65?我知道从字符串中提取字节取决于平台,但我不确定如何使用哪种编码(或者如果有编码的话)-java将字符文本转换为数值。是的:java中的字符类型使用UTF-16编码(请参阅),其中“A”具有数字(十进制)代码65。是。Java使用Unicode,所以“A”是,值为65 当你试图将一个字符或字符串(16位代码点的序列)转换成一个字节序列时,编码就开始发挥作用了——这可以通过大量不同的方式来完成。其中许多字符将“A”表示为一个值为65的单字节,但很

是否总是
char ch='A'
具有独立于平台的值65?我知道从
字符串中提取字节取决于平台,但我不确定如何使用哪种编码(或者如果有编码的话)-java将字符文本转换为数值。

是的:java中的
字符类型使用UTF-16编码(请参阅),其中“A”具有数字(十进制)代码65。

是。Java使用Unicode,所以“A”是,值为65


当你试图将一个字符或字符串(16位代码点的序列)转换成一个字节序列时,编码就开始发挥作用了——这可以通过大量不同的方式来完成。其中许多字符将“A”表示为一个值为65的单字节,但很多字符不表示。

在java中,每个字符都遵循Unicode标准。Unicode标准的Java默认实现是UTF-16。它的最小值为'\u0000'(或0),最大值为'\uffff'(或65535)(包括在内)。

所以
A
总是有数值
65
(UTF-16中的U+0041)。

那么文本中的
char
文本总是UTF-16编码的规则是什么?这是有问题的设置(例如UTF-8)还是固定的?使用规格,卢克!Java源代码不一定是UTF-16,它可以是您喜欢的任何编码;您可以将
-encoding
选项与
javac
一起使用,告诉它您的源文件使用的是什么字符编码。只是规程问题-您的问题是“独立于平台”,我最初认为您的意思是Java之外(我认为Java是一个平台,除其他外)。我认为到目前为止,假设Java的答案在这个假设中可能是正确的,但实际上你并没有提到它其中ch!=65; ch可以是0x0391或0x0410,这是希腊和俄罗斯字母表中的位置,两者都使用字母“A”。但是你必须努力将这封信输入到你的程序中,并且你必须用一个能显示Unicode字符的查看器来显示它。@rcook我通常在标题中包含“java”或表示java的内容(我在问题中提到java,尽管它不是很明确),但是我注意到人们通常使用标签来指定问题所涉及的语言(如果有的话)。我认为这是可取的行为。下一次,如果应该这样做的话,我会在标题中更具体一些。Unicode不是字符编码;它可以用不同的字符编码来表示,如UTF-8、UTF-16等。因此说
char
是“Unicode字符”并不足以回答这个问题。请参阅以了解Unicode和字符编码之间的区别。@Jesper So
Unicode
是一个标准,其中作为UTF-8、UTF-16,UTF-32等是表示Unicode标准字符的编码。我对吗?@Jesper谢谢您的指导。更新了我的答案。如果仍然存在任何错误,请纠正我。