어제 Java가 방금 배운 주니어 형제는 나에게 프로그램을 보냈고 그가 그것을 집어 넣고 죽을 수 있다고 말했고, 그는 항상 코딩 문제를보고했습니다. 그는 직접 시도했지만 문제가 있었다 ...
저장을 위해 Java 소스 파일을 편집하면 운영 체제의 기본 문자 인코딩에 저장됩니다 (Windows XP의 기본 문자 세트는 GBK). Javac 명령을 호출 할 때 소스 파일이 한 번에 인코딩되고 변환됩니다. 문자 세트가 지정되지 않으면 운영 체제의 기본 문자 세트에서 Java 내부의 기본 유니 코드 문자로 변환되고 소스 파일이 클래스 파일로 컴파일되어 유니 코드 인코딩 형태로 하드 디스크로 저장됩니다.
오류를주의 깊게 확인한 후 파일 인코딩 문제라는 것을 알았습니다. 그의 파일은 UTF -8에 의해 인코딩되었으므로 -인코딩이 추가되어 성공적으로 컴파일되었습니다 ~~
공개 클래스 테스트 {public static void main (String [] args) {System.out.println ( "hello!"); }}D :/> javac test.java
test.java:3 : 경고 : system.out.println ( "日本 日本?); ^test.java : 3 : 미완성 문자열 리터럴 값 system.out.println ("日本?); ^test.java : 3 : ';' System.out.println ( "日本?); ^test.java : 5 : 구문 구문 분석시 파일의 끝에 도달했습니다}d :/> javac -Encoding utf -8 test.java
JDK가 컴파일 될 때, Java 소스 프로그램의 인코딩 형식이 -cencoding 매개 변수로 지정되지 않은 경우 Javac은 먼저 기본적으로 운영 체제에서 사용하는 인코딩 형식을 얻습니다. 즉, Java 프로그램을 컴파일 할 때 소스 프로그램 파일의 인코딩 형식이 지정되지 않은 경우 JDK는 먼저 운영 체제의 기본 인코딩 형식을 얻고 XP는 GBK이며 JDK는 Java 소스 프로그램을이 인코딩 형식에서 Java 내에서 기본 유니 코드 형식으로 변환하여 메모리에 넣습니다. 그런 다음 Javac은 변환 된 유니 코드 형식 파일을 .class 클래스 파일로 컴파일합니다. 이 시점에서 .class 파일은 유니 코드 인코딩되어 있으며 일시적으로 메모리에 배치됩니다. 그런 다음 JDK는 유니 코드로 인코딩 된 컴파일 된 클래스 파일을 운영 체제에 저장하여 .class 파일을 형성합니다. 최종 .class 파일은 컨텐츠가 유니 코드 인코딩 형식으로 저장된 클래스 파일입니다. 소스 프로그램에는 중국 문자열이 포함되어 있지만 현재 설치 시스템 인코딩 형식을 통해 유니 코드 형식으로 변환되었습니다.
일반적으로 Windows와 Linux에서 일반적으로 실행할 수있는 UTF-8을 사용하는 것이 좋습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.