javac-encoding 용법 상세 설명

1576 단어 javacencoding
어제 자바를 막 배운 후배가 나에게 프로그램을 보냈는데, 죽어라 컴파일해도 자꾸 인코딩 문제를 보고해서 스스로 시험해 봤는데 문제가 생겼다고...
Java 소스 파일 저장을 편집하면 운영 체제의 기본 문자 인코딩으로 저장됩니다(Windows xp 기본 문자 집합은 GBK).자바 명령을 호출할 때 원본 파일을 인코딩합니다. 지정한 문자 집합이 없으면 운영체제의 기본 문자 집합에서 자바 내부의 기본 유니코드 문자 집합으로 변환한 다음 원본 파일을class 파일로 컴파일하고 유니코드의 인코딩 형식으로 하드디스크에 저장합니다.
오류를 자세히 살펴보니 파일 인코딩 문제였어요. 그의 파일은 UTF-8로 인코딩을 해서 인코딩에 성공했어요~

public class Test {
  public static void main(String[] args) {
    System.out.println(" !");
  }
}

D:/>javac Test.java

Test.java:3:  :  GBK  
    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가 컴파일할 때 - encoding 매개 변수로 자바 원본 프로그램의 인코딩 형식을 지정하지 않으면javac는 운영체제가 기본적으로 사용하는 인코딩 형식을 먼저 얻습니다. 즉, 자바 프로그램을 컴파일할 때 원본 프로그램 파일의 인코딩 형식을 지정하지 않으면 jdk는 운영체제의 기본 인코딩 형식을 먼저 얻고, xp는 GBK입니다. 그리고 jdk는 자바 원본 프로그램을 이 인코딩 형식에서 자바 내부의 기본 유니코드 형식으로 바꾸어 메모리에 넣습니다.그리고javac는 변환된 유니코드 형식의 파일을 컴파일합니다.class 클래스 파일, 이때.class 파일은 유니버설 인코딩으로 메모리에 잠시 저장됩니다. 이어서 jdk는 유니버설 인코딩으로 인코딩된 class 파일을 운영체제에 저장합니다.class 파일.결국 얻은.class 파일은 내용이 유니버설 인코딩 형식으로 저장된 클래스 파일로 원본 프로그램의 중국어 문자열을 포함하고 있지만, 설치 시스템 인코딩 형식을 통해 유니버설 형식으로 바뀌었습니다.
보통 저는 UTF-8을 좋아해요. 윈도우즈와 linux에서 정상적으로 뛸 수 있는데...
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기