Categories: Java 언어Korean

Java 총 정리[9. Eclipse 한글 깨짐 해결]

한글 깨짐 해결

여러가지 내용을 배우면서 실습을 진행하거나 스스로 프로그래밍을 하시고 있으실 거라고 생각이 됩니다. 하지만 소스나 코딩이 아닌 곳에서 문제가 발생되어서 힘들어 하시고 프로그램을 짜는 것에 멀어지는 경우가 종종 있습니다.

그럼 소스와 코딩 문제가 아닌 문제를 어떻게 해결을 하면 될까요? 저 또한 이런 문제로 인해서 공부를 하고 있을 때나 아니면 개발자로 있을 때 많이 힘들었던 것 같습니다.

상황마다 여러가지 문제가 발생을 합니다. 당연히 스스로 해결을 해야 하며 이것이 소스와 코딩의 문제인지 설정에 문제인지 답을 쉽게 찾지 못하니 어렵습니다.

설정에 문제가 확실하다면 인터넷을 통해 검색하고 찾으시면 분명 도움이 되실 겁니다.

이 글에서는 Java 공부를 할 때 처음에 가장 많이 나오는 문제를 고치기 위한 설정을 담았습니다. 끝까지 읽으신다면 이 문제는 쉽게 해결을 하실 겁니다.

처음에 모두가 겪어서 힘들 수 있는 한글 깨짐 현상입니다. 한글을 입력을 받은 내용을 출력을 하거나 출력문을 이용해서 한글을 출력을 할 때 한글이 이상한 글자로 깨져서 나오는 현상입니다. 이 글을 천천히 따라하시면 한글 깨짐을 해결을 할 수 있습니다.

한글 깨짐 현상

아래 소스와 같이 출력에 한글을 넣어서 출력을 하거나 또는 입력을 받을 때 한글을 받은 변수를 출력을 하면 한글이 깨지는 현상을 한글 깨짐 현상이라고 합니다.

    
import java.util.Scanner;

public class KoreanTest {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
 // "안녕하세요"문자열 출력
  System.out.println("안녕하세요."); 
 // 입력을 하기 위해 Scanner 객체 생성
  Scanner sc = new Scanner(System.in);
 // 문자열 입력을 받는 명령을 내리고 입력 받은 문자열 을 문자열 변수 str에 대입
  String str = sc.next();
 // 문자열 변수 str 출력
  System.out.println(str); 
 }
}
    

결과

한글 깨짐 수정

Eclipse의 설정을 이용해서 한글 깨짐 현상을 수정을 하겠습니다.

  1. Package Explore를 엽니다.
  2. 현재 프로젝트를 클릭을 합니다.
  3. 오른쪽 버튼을 누르면 창이 나옵니다.
  4. Run As로 마우스를 옮기면 Run Configurations..를 클릭을 합니다.
  5. Main부터 여러 탭이 있는데 여기서 Common 탭을 클릭합니다.
  6. Encoding에 Other를 클릭하고 MS949를 입력합니다.
  7. 그 이후에 하단에 보면 Apply를 클릭하고 Run을 실행합니다.
  8. 실행 결과를 확인을 하면 한글이 잘 표현 되는 것을 알 수 있습니다.

UTF-8과 MS949(CP949)란?

UTF-8

Unicode Transformation format -8bit가 풀 네임 입니다.

코드 페이지는 65001로, 표현 가능한 길이는 최대 6바이트지만 다른 인코딩 호환을 위해 4바이트만 사용 아스키 코드와 호환이 되며 가변 길이를 사용해도 비트가 남는다.

인터넷에서 가장 많이 쓰는 인코딩 이고 별다른 변환 처리 없이 그대로 사용 가능 하고 크로스 플랫폼 호환성도 뛰어나다.

MS949(CP949)

마이크로소프트가 제정한 규격으로 한글 Windows 98에 처음 사용 네이티브 프로그래밍 언어를 이용해 UTF-8로 한글 출력을 하면 깨져 나온다.

EUC-KR과 같지 않다. 가나다순을 차례대로 2바이트로 할당 받아 사용을 한다.

※ 네이티브하게 프로그래밍 공부를 하려면 MS949또는 CP949를 사용하고 웹을 구현을 할 때는 UTF-8을 사용하는 걸 추천 드립니다.

<참조 : 나무 위키>

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

8개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

9개월 ago

This website uses cookies.