같은 모양, 다른 값의 한글 자음

2013. 7. 5. 09:13제2외국어/에러일지.

과정.

- 연락처에 있는 초성, 중성, 종성을 분류하고 비교하는 과정 중
- 자음으로만 저장된 연락처정상적인 연락처를 비교 
ex) 'ㄱㄱㄴ' , '가나다'

- 두 문자열의 첫번째 초성값들을 비교
- 뽑아낸 초성 자음 'ㄱ' 와 'ㄱ' 를 isEqualString을 통해 비교
- false가 리턴 !!


Why??

내가 보기엔  'ㄱ' 'ㄱ'의 비교                         ----->  같은 자음 'ㄱ' 과 'ㄱ'  같은 것 처럼 보임.
컴퓨터가 보기엔 '12593''4352'의 비교      ----->  단일 자음 'ㄱ'과 초성 자음 'ㄱ' 차이가 존재.


   



아래 표와 같이 초성 자음과 종성 및 단일 자음의 유니코드 값이 다릅니다.

( 실제로는 자음마다 총 5개의 유니코드 값이 존재합니다. )

초성 자음                  종성 및 단일 자음            종성 및 단일 자음 중 19개

4352 12593 ㄱ                    12593 ㄱ  

4353 12594 ㄲ                    12594

4354 12595 ㄳ                    12596

4355 12596 ㄴ                    12599

4356 12597 ㄵ                    12600

4357 12598 ㄶ                    12601

4358 12599 ㄷ                    12609

4359 12600 ㄸ                    12610

4360 12601 ㄹ                    12611

4361 12602 ㄺ                    12613

4362 12603 ㄻ                    12614

4363 12604 ㄼ                    12615

4364 12605 ㄽ                    12616

4365 12606 ㄾ                    12617

4366 12607 ㄿ                    12618

4367 12608 ㅀ                    12619

4368 12609 ㅁ                    12620

4369 12610 ㅂ                    12621

4370 12611 ㅃ                    12622

  12612  

  12613  

  12614  

  12615   

  12616  

          12617  

  12618  

  12619  

  12620  

  12621  

  12622  


(IOS) 자음의 유니코드 값 확인 코드 

 // unichar 로 변수 선언
 // 자음이 들어있는 strConsonant 변수안에 0번재 값을 집어넣습니다.
 unichar oneChar = [strConsonant characterAtIndex:0];
 // NSLog를 통해 %d값으로 int값 출력해서 유니코드 값을 확인할 수 있습니다.
 NSLog("UNICODE : %d", oneChar);

 


HOW

: 저 같은 경우 배열 생성해서 매핑하는 방식으로 처리했습니다.
( 자음의 모든 유니코드 5개를 모두 비교하는게 아니라, 단일 및 종성 자음과 초성 자음만 비교했습니다. )