C언어기반 프로그램 한글깨짐

터미널을 이용해서 프로그램을 실행 시켰는데 한글이 깨져서 출력됨니다.

터미널 메뉴에 보면 캐릭터 인코딩을 바꿀 수 있는 메뉴가 있는데 'Korean UHC’로 바꾸고 실행 해보세요.

이렇게 해서 한글이 보인다고 해도 입출력 할 때 다른 문제가 생길수도 있는데 이건 제가 제대로 모르겠습니다.

글자가 안나오고, 공백이나 네모 모양으로 나온다면, 이것은 글꼴내에 원하는 글자모양이 존재하지 않기 때문입니다.
이것은 글꼴이 한글을 포함하지 않거나, 터미널에서 영문글꼴로 설정되었을 경우, 글자모양을 찾지 못해, 대체문자로 표현하거나 공백으로 표현하는 것입니다.

만일, 글자가 물음표(?)로 나온다면, 이것은 프로그램이나 라이브러리의 문제로,
한글을 처리하지 않고, 영문으로만 처리하거나 하여 나타나는 문제입니다.

한글이 깨져서라도 나오는 것은, 그 모양이 표현되어야 할 글꼴 내에 존재하기 때문입니다.
즉, 원하는 글자 모양이 아닌 다른 모양이 연결되어 보여지는 것이며, 문자에 해당되는 문자코드(문자를 표현하는 컴퓨터가 이해하는 숫자)를 다른 문자코드로 인식하는 것입니다.
그것은, 인코딩이 잘못되었을 경우에 발생합니다.

추가로 인코딩에 대해서 설명해 드리겠습니다.

전세계에는 수많은 문자가 존재하고, 그 문자내에 속하는 글자도 엄청나게 많습니다.
이것을 모두 포함한다는 것은 아주 힘들기 때문에, 몇바이트의 코드에 자신이 사용할 하나의 문자집합만을 표현하는 것이 일반적입니다.

한국어에서는 1번은 가, 2번은 나 이렇게 할당한다면,
일본어에서는 일본문자로 할당할 것입니다. 똑같은 1,2의 숫자이지만 의미하는 것은 각각의 언어에 따라 달라집니다.
그래서 한국어로 저장된 글자를 일본에서 읽으면 말도 안되는 일본어가 나오게 되죠.

가,나,… 로 할당하는 것을 한국어 인코딩(EUC-KR)이라하고, 일본문자로 할당한 것은 일본어인코딩(EUC-JP)이라 할 수 있겠지요.
한글이나 일본어(가나는 몇자 안되지만, 일본어는 한자를 기본적으로 포함할 수 밖에 없기 때문), 중국어는
그 속에 속하는 문자의 갯수가 어마어마하기 때문에, 한글도 일부 글자(현재 사용되지 않는 초/중/종성 조합)를 표현하지 않은 채 2바이트(16비트-65536개)내에 한정하여 표현합니다.
대부분의 경우, 영문과 문장기호, 숫자는 그대로 포함하고 있습니다.
왜냐면, 이들은 몇자가 안되기 때문에, 1바이트(8비트-256개)내에 포함될 수 있기 때문입니다.
그러나 한자의 경우 6만자로 전부 표현할 수 없죠. 그래서 3-4바이트 확장이거나, 간략화하고 표준화한 한자를 포함하여 유니코드에 배치합니다.

[quote="마잇":26f0868n]터미널 메뉴에 보면 캐릭터 인코딩을 바꿀 수 있는 메뉴가 있는데 'Korean UHC’로 바꾸고 실행 해보세요.

이렇게 해서 한글이 보인다고 해도 입출력 할 때 다른 문제가 생길수도 있는데 이건 제가 제대로 모르겠습니다.[/quote:26f0868n]

감사합니다. 약간의 오류가 있지만 이 정도로 만족해야죠

http://askubuntu.com/questions/87227/sw … -a-command