【发布时间】:2016-05-09 04:00:07
【问题描述】:
作为测试,我创建了一个名为 Hello.java 的文件,内容如下:
public class Hello{
public static void main(String[] args){
System.out.println("Hello world!");
}
}
我使用 UTF-8 编码保存了这个文件。
反正编译运行问题是没有问题的。此文件的长度为 103 字节。
然后我使用 UTF-16 BE 编码保存了文件。这次文件是 206 字节 长,因为 UTF-16(通常)需要更多空间,所以这里并不奇怪。
尝试从我的终端编译文件,我得到了所有这些错误:
Hello.java:4: error: illegal character: '\u0000'
}
^
那么 javac 是否仅适用于 UTF-8 编码的源文件?这像标准吗?
javac -version
javac 1.8.0_45
另外,我只知道 Java,但假设您正在运行 Python 代码或任何解释性编程语言。 (对不起,如果我误认为 Python 不是被解释的,那么它是被解释的......)编码会有问题吗?如果没有,对性能有影响吗?
好的,所以“true”这个词是一个保留关键字(对于给定的编程语言..),但是它以什么编码保留? ASCII - 仅 UTF-8?
“真实”存储在硬盘驱动器或内存中的方式取决于保存文件的编码,因此编程语言是否必须始终使用特定编码来处理源文件?
【问题讨论】:
标签: encoding compilation language-agnostic computer-science interpreted-language