한글 MS 확장 완성형에서 질문입니다.
글쓴이: roke79 / 작성시간: 금, 2004/03/26 - 12:03오후
visual studio 6.0 에서 console mode에서 한글을 입력 받으면
예를 들어, 'ㄱ' => 0xa4a1 과 같이 확장 완성형으로 보여주더 군요
'ㄱ' ,'ㅏ', 'ㄴ', 'ㅏ' 를 각각 따로 입력받아서 '가나'와 같이 만들려구
합니다. 여기서 생각했던 것은 'ㄱ' 와 'ㅏ' 의 완성형 코드를 각각
조합형 코드로 바꾼 후 'ㄱ' 'ㅏ' 를 조합하여 '가'를 만들려고 했는데
생각보다 잘 안되서 이렇게 글을 올립니다.
'ㄱ' 의 조합형 코드(kscl 1992)는 0xdaa1 이고 'ㅏ'는 0xdabf 더 군요
근데 제가 아는 조합형 코드는 첫 비트 0/1로서 한영을 구분 하고
나머지 5bit씩 초/중/종 으로 조합하는 것으로 알고 있었는데
'ㄱ' 과 'ㅏ' 를 조합해서 해당 '가' 의 조합형 코드(0x8861)가 나오지
않아서 문제 입니다. 채움비트는 0x0001로서 사용했습니다.
제가 조합형 코드의 조합을 잘못 알고 있는 건가요? 이거 생각하느라구
이틀동안 고민하다가 이렇게 글을 올립니다. (넘 허접해서..)
고수님들의 많은 조언 부탁드립니다....T.T
Forums:
http://web.edunet4u.net/~han0416/%ED%95%
http://web.edunet4u.net/~han0416/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%EA%B0%95%EC%A2%8C/chapter2/jy_code.htm
구글에서 조합형 코드라고 치니 바로 나오네요 ..
먼저 글이 커널 프로그램쪽에 있어서 일반 프로그램 QnA로 옮겼음을 알려
먼저 글이 커널 프로그램쪽에 있어서 일반 프로그램 QnA로 옮겼음을 알려드립니다.
추측하신대로 코드는 맞는것 같습니다만 한가지 빠진것이 있습니다.
즉, 'ㄱ'의 조합형이라고 써놓으신 0xdaa1은 완성형의 코드입니다.
그러니 'ㄱ'과 'ㅏ'의 코드인 0xdaa1과 0xdabf는 그 자체가 완성형코드라는 소리이죠.
님이 말하신 0x8861이 실제 조합형 코드이고 따라서 0xdaa1(완성형의 'ㄱ')을
조합형의 0x8841(조합형의 'ㄱ')으로 변환시켜주는 부분을 거쳐야합니다.
물론 0xdabf(완성형의 'ㅏ')부분도 0x8461(조합형의 'ㅏ')로 바꾸는 부분도 그것에
포함되겠죠.
아래 초중종으로 조합 시키는 방법은 맞습니다.
음... 위 vacancy님이 링크시킨 부분의 표중에서 fill code가 file code로 잘못
표기되었더군요.
초성의 fill code는 00001b, 중성은 00010b, 종성은 00001b로 하시는게 맞습니다.
결론적으로 말씀드리면 각 초,중,종성의 값들도 변환시켜서 그 해당값을 가지고
있어야 조합이 가능하다는 소리입니다.
------------------------------
좋은 하루 되세요.
덕분에 많은 도움이 됐습니다...
답변 해준 신 분들 덕분에 많은 도움이 됐습니다.
결국 조합형과 완성형이 있는 table의 매치를 이용하기는 했지만..T.T
더욱 더 노력해야 겠지요. 그럼 이만..감사합니다.
깊은 우물은 마르지 않는다.
댓글 달기