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
[58848] Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요)
궁금이 [] 1685 읽음    2009-10-21 13:01
우선 답변 감사합니다
질문을 님 말씀대로 좀 정리해야겠네요...

1. 아래처럼 조합형으로 만들어진 유니코드입니다.
================================================
유니코드 2.0의 한글 코드
한글 음절: 0xAC00 ~ 0xD7A3 (11172 자)

V = {[(Cho_i X 21)+ Jung_i]*28}+ Jong_i + 0xAC00
V : 유니코드 값 Cho_i: 초성 인덱스값 Jung_i : 중성 인덱스값 Jong_i : 종성 인덱스 값

조합형 코드: 초성(19개) × 중성(21개) × 종성(28개)
→ 자모 조합과 자모 분리가 용이하다.
모든 현대 한글 표현 가능 (KS-C-5601의 한글 음절 모두 포함)
유니코드 2.0은 유니코드 1.1과 한글 표현 방식이 달라서 서로 호환되지 않는다.
부코드  0  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   
초성  ㄱ  ㄲ  ㄴ  ㄷ  ㄸ  ㄹ  ㅁ  ㅂ  ㅃ  ㅅ  ㅆ  ㅇ  ㅈ  ㅉ  ㅊ  ㅋ  ㅌ  ㅍ  ㅎ   
중성 ㅏ  ㅐ ㅑ  ㅒ  ㅓ  ㅔ  ㅕ  ㅖ  ㅗ  ㅘ  ㅙ  ㅚ  ㅛ  ㅜ  ㅝ  ㅞ  ㅟ  ㅠ  ㅡ  ㅢ  ㅣ 
종성  없음  ㄱ  ㄲ  ㄳ  ㄴ  ㄵ  ㄶ  ㄷ  ㄹ  ㄺ  ㄻ  ㄼ  ㄽ  ㄾ  ㄿ  ㅀ  ㅁ  ㅂ  ㅄ  ㅅ  ㅆ  ㅇ  ㅈ  ㅊ  ㅋ  ㅌ
===============================================
2. 위 처럼 제가 Edit에 쓴 글자 하나하나에 대한 값을 얻고 싶습니다.
ex)
: : 감 : AC 10  =>{[(0 X 21)+ 0]*28}+ 16 + 0xAC00 = 44048
: : 사 : C0 AC => 49324
: : 합 : D5 69  => 54633
: : 니 : B2 C8 => 45768
: : 다 : B2 E4 => 45796

3. 위 값을 byte 형으로  받고 싶어요
ex) 감 :    Buff[0] = HIBYTE(44048);   <== 0xAC
    Buff[1] = LOBYTE(44048);  <== 0x10

4. 위처럼 감이란 글씨에 대해서 AC10 이란 값을 원하는데 B0A8 이런 값이 들어가 버리네요...

질문이 너무 길어져버렸네요...
위처럼 하려는 이유는 제가 edit에 쓴 스트링 값을 한글 같은경우 위처럼 유니코드값으로 영어는 해당 아스키값으로 전송하고자 함입니다...

이번에도 너무 제입장으로 글을 썼나요.... -.-;;

-------------------------------------------------------------------------------------------------

김상구.패패루 님이 쓰신 글 :
: 질문을 이해하기도 어렵게 작성하셔서... 좋은 답글 달리긴 어려워 보이네요. ^^
: 질문의 요지가 뭔가요?
:
: 2009이상 버전을 사용하시고 있다면
: Edit1->Text = L"감사합니다!ABCD#★←♤";
: 혹은
: Edit1->Text = U"감사합니다!ABCD#★←♤";
:
:
: 라고만 하셔도 정확하게 UTF-16LE로 저장됩니다. L이나 U를 빼먹지 마세요.
:
: 참고로... 질문 자체의 문제를 지적하자면
: 1. 유니코드라고 하시는데 구체적으로 어떤 인코딩을 말씀하시나요? UTF-16LE? UTF-8? 구체적으로 밝히셔야 합니다.
: 2. '이값'이 대체 뭔가요?
: 3. 그냥 버퍼란? char 문자열 버퍼를 말씀하시는지 wchar_t 문자열 버퍼를 말씀하시는지
: 4. 제대로 들어가지 않는다는게 어떻게 제대로 들어가지 않는다는지... 즉, 기대하고 있던건 어떤 인코딩인데 실제 들어간건 어떤 인코딩인거 같다... 이런식으로...
:
: 답변 작성자가 님께서 적으신 바이너리값을 각각의 코드표와 일일이 대조해 가면서 답변을 적을만큼 널널할꺼라 생각하시면 오산입니다.
:
:
:
: 궁금이 님이 쓰신 글 :
: : Edit1->Text = "감사합니다!ABCD#★←♤";   이와 같은값이 들어있다치면
: :
: : 입력한 스트링값에서 한글은 유니코드로 영문이나 특수문자는 그에 해당하는
: :
: : 이값을 구하고 싶습니다
: :
: : 그냥 버퍼에 스트링값을 넣어보니 !표나 ABCD 같은 아스키값은 잘 들어가는데
: :
: : 한글과 특수문자들의 값이 제대로 들어가질 않습니다
: :
: : MultiByteToWideChar 를 써보아도 마찬가지네요,,,
: :
: : 감       사      합       니       다        !   A  B  C  D   #  ★       ←      ♤
: : B0 A8 BB E7 C7 D5 B4 CF B4 D9 21 41 42 43 44 23 A1 DA A1 E7 A2 BB    <--- 이런값이 들어가네요
: :
: : 원하는값은
: : 감 : AC 10
: : 사 : C0 AC
: : 합 : D5 69
: : 니 : B2 C8
: : 다 : B2 E4     <-- 입니다..
: : 특수문자는 유니코드값이 어떻게 되는지 정확한 값을 알수가없네요... 유니코드 구하는 루틴을 함께쓰면되나요??
: :
: : 하루 종일 삽질하고 있네요 도와주세요

+ -

관련 글 리스트
58837 스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요 궁금이 1244 2009/10/20
58845     Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요 김상구.패패루 1530 2009/10/21
58848         Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 궁금이 1685 2009/10/21
58849             Re:Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 김상구.패패루 1572 2009/10/21
58850                 Re:Re:Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 궁금이 1394 2009/10/21
58853                     Re:Re:Re:Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 김상구.패패루 2677 2009/10/21
58854                         Re:Re:Re:Re:Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 아제나 1387 2009/10/21
58855                             Re:Re:Re:Re:Re:Re:Re:스트링값을 유니코드값으로 변환하는 방법 좀 알려주세요(재질문이요) 김상구.패패루 2005 2009/10/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.