|
우선 답변 감사합니다
질문을 님 말씀대로 좀 정리해야겠네요...
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 <-- 입니다..
: : 특수문자는 유니코드값이 어떻게 되는지 정확한 값을 알수가없네요... 유니코드 구하는 루틴을 함께쓰면되나요??
: :
: : 하루 종일 삽질하고 있네요 도와주세요
|