C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[21926] Re:한자->한글 변환 함수 있는지요?
나오미 [disatheaven] 2406 읽음    2002-10-08 11:34
하니맨 님이 쓰신 글 :
:
: hanja2hangl("漢字가 있는 部分을 한글로 바꿉니다.")
: -> "한자가 있는 부분을 한글로 바꿉니다."
:
: 이렇게 변환해 주는 함수가 16비트에서는 라이브러리 형태로 제공해 준 분이 있었습니다만,
: 빌더에서 쓸 수 있는 한자->한글 변환 기능의 함수가 있을까요?

글쎄요.. 있는지는 잘 모르겠지만
윈도우에서 사용되는 완성형 한글은 KSC5601을 기초로 사용되어집니다.
다음과 같은 범위가 지정되어있죠

코드값 (16진수)  내용 
A1A1 ~ A2FE  구두점, 기호 ('※', '☎', ...) 
A3A1 ~ A3FE  전각 아스키 ('A', 'B', '*', ...) 
A4A1 ~ A4FE  2벌식 한글 자모 ('ㄱ', 'ㄲ', ...) 
A5A1 ~ A9FE  로마 숫자, 그리스어, 기타 기호 
AAA1 ~ ABFE  일본어 (히라가나, 카타카나) ('あ', 'あ', ..., 'ア', 'ア', ...) 
ACA1 ~ ACFE  소련어 
B0A1 ~ C8FE  한글 음절 ('가', '각', ...) (2350 자) 
CAA1 ~ FDFE  한자 (4888 자) ('伽', '佳', '假', ...) 

http://camars.kaist.ac.kr/~dtkim/java/encoding.html

한자가 0xcaa1부터 시작하므로 한글자씩 읽어 가며 치환하는 함수를 만들면 될거 같습니다.
예를 들자면

AnsiString aa = "家";
AnsiString bb = "";

if ( ( aa.c_str()[0] >= 0xffffffca
    || aa.c_str()[0] <= 0xfffffffd
     )
  && ( aa.c_str()[1] >= 0xffffffa1
    || aa.c_str()[1] <= 0xfffffffe
     )
   )
   bb = "가";
;
ShowMessage(bb );

이런식이 되겠죠. 한문의 가 부분의 범위와 한글 가와 맵핑테이블을 만드는게
귀찮기는 하겠지만..
잘은 모르지만 제공되던 라이브러리 역시 이와 같은 방법이거나,
혹은 모든 한자에 대한 리소스 테이블을 만들고서 한글과 맵핑시킨후 서치해서
한글로 변환하지 않았을까 생각합니다.

+ -

관련 글 리스트
21920 한자->한글 변환 함수 있는지요? 하니맨 908 2002/10/07
21926     Re:한자->한글 변환 함수 있는지요? 나오미 2406 2002/10/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.