В качестве теста я создал файл с именем Hello.java и содержание являются следующие:Каков протокол/отношения между кодировками и языками программирования?
public class Hello{
public static void main(String[] args){
System.out.println("Hello world!");
}
}
Я сохранил этот файл с UTF-8 кодирования.
В любом случае, скомпилирование и запуск проблемы не было проблемой. Этот файл был 103 bytes long.
Затем я сохранил файл с 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 интерпретируется, если это не так.) Будет ли кодирование проблемой? Если нет, это повлияет на производительность?
Итак, слово «истина» является зарезервированным ключевым словом (для данного языка программирования ..), но в какой кодировке оно зарезервировано? ASCII - только UTF-8?
Как «истина» хранится на жестком диске или в памяти зависит от кодировки, в которой сохранен файл, поэтому язык программирования всегда должен работать с определенной кодировкой для исходных файлов?
Будут ли файлы .class всегда utf-8? –
@ KorayTugay Добавлено упоминание об этом. Java использует UTF-16 внутренне –
Что делать, если интерпретатору необходимо обрабатывать файлы в разных кодировках? Как один файл utf8, но зависимость utf16? –