java 소스파일 컴파일 시 error: unmappable character (0xEC) for encoding x-windows-949 발생

자바의 신 서적 4장을 직접해 봅시다를  실습하는 과정에서 IDE 사용 없이 직접 text 에디터를 통해서 java 소스파일을 작성하고 컴파일 하는 과정에서 error: unmappable character (0xEC) for encoding x-windows-949가 발생했다. 보통은 실습 및 개발을 하는 과정에서 IDE의 도움을 받으며, 대부분 인코딩 부분들이 설정되어 있어서 해당 컴파일 에러를 접해볼 기회는 없었으나 직접 터미널을 통해 컴파일을 해보는 과정을 통해 다음과 같은 에러를 접해볼 기회와 IDE의 편리함을 경험했다.

 

 

  • ProfilePrint.java 소스파일
public class ProfilePrint{
	
	byte age;
	String name;

	boolean isMarried;

	public void setAge(byte age){
		this.age = age;
	}

	public byte getAge(){
		return age;
	}

	public void setName(String name){
		this.name = name;
	}

	public String getName(){
		return name;
	}

	public void setMarried(boolean flag){
		isMarried = flag;
	}

	public boolean isMarried(){
		return isMarried;
	}

	public static void main(String[] agrs){
		ProfilePrint profile = new ProfilePrint();
		profile.setAge((byte)32);
		profile.setName( "박재용");
		profile.setMarried(false);

		System.out.println(profile.getAge());
		System.out.println(profile.getName());
		System.out.println(profile.isMarried());
	}
}

 

  • 에러발생 화면

다음을 통해서 OS는 x-windows-949 문자체계를 사용하는 것을 확인해 볼 수 있으며, 다음을 해석해보니 윈도우 OS 문자체계로부터 문자를 매핑할 수 없다는 내용 같다. 정리하면 자바 소스코드를 컴파일하는 과정에서 문자체계가 맞지 않아 발생한 것 같다.

 

  • 해결방법
 C:\java> javac ProfilePrint.java -encoding UTF8

다음과 같이 인코딩을 지정하여 컴파일하면 간단하게 해결할 수 있었다.