공지사항

최근에 달린 댓글

글 보관함

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

hcode 설치

2008. 9. 17. 21:00 | Posted by 햇살한모금


한글코드 변환 프로그램

97/06/06
이 상 로

    1. 역사                                                                           1
    2. 파일 가져오기                                                                  1
    3. 컴파일 및 설치                                                                 1
    4. 사용법                                                                         2
    5. 기타                                                                           3

1. 역사

한글코드는 이준엽(jylee@math.kaist.ac.kr)님이 만드신 것입니다. 이후 신정식님이 메일처리부분을 매끄럽게 처리한 한글코드 메일패치버전이 마지막 버전입니다. (1997/06/01) 조만간 유니코드와의 변환도 추가되리라 생각됩니다.

2. 파일 가져오기

ftp://ftp.kaist.ac.kr/pub/hangul/code/hcode2.1-mailpatch2.tar.gz 
(알ftp로 ftp://ftp.kaist.ac.kr/ 접속하셔서 하위 폴더로 들어가서 받으시면 됩니다.)

ftp://ftp.nuri.net/pub/hangul/code/hcode2.1-mailpatch2.tar.gz

종종 한글코드 2.0버전이나 메일패치가 되지 않은 버전을 가져다 설치하는 분들이 있습니다. 파일을 다운받을때는 꼭 버전과 날자를 확인하십시오.

3. 컴파일 및 설치

압축을 풉니다. tar -xvvzf hcode2.1-mailpatch2.tar.gz
압축을 푼 디렉토리로 이동합니다. cd hcode2.1-mailpatch2
컴파일을 합니다.
cc -o hcode hcode.c conv.c in.c out.c mail.c 또는
make
라고 칩니다.

그러면 몇가지 에러가 나오는데 사용하는데 지장이 없는 경고성 메시지이므로 무시해도 됩니다. 디렉토리를 자세히 보면 hcode라는 실행화일이 생성됩니다. 이 파일을 /usr/local/bin이나 자신의 홈디펙토리에 bin이라는 디렉토리를 만들어 옮겨둡니다. 그리고 이 디렉토리를 자신의 PATH에 지정해 둡니다.

4. 사용법

4.1 명령어와 옵션

   
    hcode  -[dIhknrst[dihKnrst]]  [ input_file(-) [output_file] ]

과 같이 사용합니다. 만일 사용하다 사용법을 잘 모르겠으면 hcode -help라고 칩니다. 좀더 자세히 살펴봅시다.
hcode는 명령어이고 -뒤에는 옵션이 붙습니다. 옵션은 어떤 코드형식을 다른 코드형식으로 바꾸려한다는 것을 지정합니다. 예를 들어 KSC 5601을 iso-2022-kr로 바꾸려면 옵션이 -ki가 붙습니다. 그다음에는 입력화일 이름이 나오고 바로 이어 입력화일을 지정한 코드형식으로 바꾼 파일이름이 나옵니다.

따라서 hcode -ki input.txt output.txt 명령어는 ksc5601형식의 input.txt화일을 iso-2022-kr형식의 output.txt화일을 생성합니다. 각각의 옵션이 의미하는 바는 다음과 같습니다.

        <k>SC : 8비트형식의 KSC-5601-1987을 지정합니다.
        <h>an3 : meaningful only for output code.
        <i>SO-2022-kr : ISO 2022-KR형식의 파일로서 메일에서 주로사용합니다.
        S<d>N : B_encoded_Header+\n+Body_in_ISO2022
        <t>rigem : 15 bit Trigem Combination Code
        <r>oman : Hangul Romanization Code
        <n>Byte : Old starndard in Unix system
        <s>im_Key : Simulation of 2 set Keyboard
4.2 hcode가 제대로 작동되는지 확인

다음과 같이 해봅시다. 일단 A형식의 input file을 B형식으로 바꾸어 거기서 나온 결과를 C로 다시 바꾼후 여기나온 파일을 표준 입력으로 받아 다시 A형식으로 바꾸면 원상태로 되돌와야 합니다. 이때 원본과 A->B->C->A로 코드변환된 원본화일이 다른지 diff로 확인합니다. 이렇게 해서 아무런 메시지도 나오지 않아야 정상입니다.

"hcode -AB your_file_in_A | hcode -BC | ... | hcode -CA | diff - your_file"

4.3 hcode을 메일과 함께 사용하여 메일을 자동으로 코드변환

**** 주의 ********
hcode는 메일을 처리하는데 lock의 문제가 있습니다. 만일 hcode가 메일을 처리하는 과정에서 새로운 메일이 도착하면 같은 파일을 두 개의 프로그램이 경쟁적으로 사용하려고 합니다. 이렇게 되면 파일이 원래의 메일 구조를 잃고 비정상적인 형식을 갖을 수 있습니다.


따라서 반드시 신정식님의 hmconv 프로그램을 사용하십시오. 뒤에 나오는 예는 메일외의 목적으로만 사용하십시오
***********************

자신의 홈디렉토리에 .forward화일을 두고 그내용은 다음과 같이 한다.

.forward 내용

        "| $HOME/bin/hcode -dk | cat >> /usr/spool/mail/your_login"

이것은 들어오는 메일을 hcode로 보내서 메일형식의 메세지(d)를 KSC-5601(k)로 바꿉니다. 이렇게 코드변환된 메시지를 스풀디렉토리의 메일박스에 넣습니다.
4.4 메일 패치버전

메일 패치된 버전은 신정식님이 부분 수정하여 만드셨습니다. 따라서 고친 사람의 홈페이지에 접속해서 보시면 가장 시원한 대답을 들을 수 있겠죠. 신정식님의 메일 홈페이지는

http://pantheon.cis.yale.edu/~jshin/faq/hmail.html 입니다.

그럼 뭘 추가하고 바꾸었을까요?

MS-Exchange프로그램은 designator다음에 \n을 붙이지 않습니다. designator 다음에 <CRLF>가 와야 하는데 그렇지 않은데 대한 rmprolog()함수를 손을 보았습니다.
'-dk' 옵션은 본문의 코드만 변환하지 마임메일에서 요구하는 character set, character header은 변환하지 않습니다. 그래서 메일을 8비트 코드로 바꾸었다는 표시를 헤더에 추가했습니다.
     content-transfer encoding : iso-2022-kr -> euc-kr, (7bit -> 8bit )
'-ki'가 RFC 1557을 올바르게 준수하도록 하였습니다. rfc1557에서는 ksc5601이 나오기전 줄 처음에 designator을 두도록 하고 있습니다.
'hcode -ki | hcode -ki' 해서 코드변환하면 원상태로 되돌아 옵니다.
'-m' 과 '-?'을 추가하였습니다. '-m'는 procmail 필터 프로그램과 같이 사용할 경우 항상 0을 리턴하고 빠져나가 매끄러운 종료가 되도록 하였습니다. '-?'는 사용법을 알려줍니다.
5. 기타
이 문서는 원래소스의 README나 여타의 도움화일을 대신할 수 없습니다. 따라서 자세한 사항을 알고자 할 경우 반드시 소스에 있는 문서를 참조하십시오.

--


======================================
gcc 설치
yum install gcc -core (이전 버젼이 설치되어 있다면 자동으로 최신버전으로 받아서 update를 진행한다.)