作为测试我创建了一个称为Hello.java文件和内容如下:编码和编程语言之间的协议/关系是什么?
public class Hello{
public static void main(String[] args){
System.out.println("Hello world!");
}
}
我保存的这个文件有UTF-8编码。
无论如何,编译和运行问题是没有问题的。该文件是103字节长。
然后我保存的文件与UTF-16编码。这一次的文件是206字节长,因为以及UTF-16(通常)需要更多的空间,所以这里没有什么惊喜。
试图编译从我的终端的文件,我得到了所有这些错误:
Hello.java:4: error: illegal character: '\u0000'
}
^
所以确实只能用UTF-8编码的源文件javac的工作?这就像一个标准?
javac -version
javac 1.8.0_45
此外,我只知道Java,但可以说你正在运行Python代码或任何解释性编程语言。 (对不起,如果我误解了Python是否被解释,如果它不是..)编码会是一个问题吗?如果不是,它会对性能产生什么影响?
好了,所以字“真”是保留关键字(对于给定的编程语言..),但在什么编码它保留? ASCII - 仅限UTF-8?
如何“真”被保存在硬盘或内存取决于文件保存在编码,因此必须在编程语言的期望总是与源文件的特定编码工作?
.class文件是否总是utf-8? –
@KorayTugay补充说明。 Java在内部使用UTF-16 –
如果解释器需要使用不同的编码处理文件,该怎么办?像一个文件是utf8,但依赖项是utf16? –