Java

UTF 인코딩

오개발 2024. 10. 28. 22:48

 

 

위쪽 부분은 아스키코드 7bit 코드 체계이다.

숫자 -> 문자로 매핑한것이다. 표를 보고 예를 들어서 

 

7bit -> 즉

7bit를 계산하면 128값

 

컴퓨터에 표준 방식을 짜뒀다. 하지만 문제가 있다. 하지만 동아시아권으로 왔더니 아스키코드로 커버가 안된다.. (한자어 등등)

 

한글 입력 방식에 조합형 과 완성형와 어느쪽이 더 좋을까? 논쟁이 있었다고 한다.

 

조합형이란 ? 각 자음 모음에 숫자를 부여해서 선택 하는 방식이가.

예를 들어서 ㄴ(3) + ㅓ(4) + ㄹ(5) =  345를 하면 널

 

완성형

 

 

 

결국은 완성형으로 채택 되었지만 자음 + 모음 = 글자? 몇개일까? 대략 천개정도 넘는다,

 

일본 + 중국 + 한글 = 대략 완성형으로 합쳤을떄 10만개가 넘을것이다.

16bit로 -> 대략 6만적이다. 

그래서 16bit로 전부 커버가 가능할까? 그렇게 나온게 유닛코드체계이다.

 

 


 

 

1990년도에 MS사에서  (코드페이지949) EUC-KR 인코딩을 만들었다.

하지만 인터넷때문에 이슈가 발생한다.

HTML <--> 문자 인코딩에 해석이 어떻게 될까? 

막 꺠지는 현상이 일어났다.

그래서

UTF-8로 단결 한다.

 

여기서

유닛코드가 -> 3바이트로 변환이 된다.

 

 

 

UTF-8 -> 유닛코드랑 아스키코드를 합친다. 여기서 유닛코드는 3바이트로 표현하는게 특징이다.

 

UTF-8이라는걸 확인 하려면 소스 가장 앞에 EF BB BF라고 명시가 되어 있다.

 

 

 

UTF-8은 내가 생각 했을떄 유닉스 코드 최초에 16비트 였다가 3비트로 변경 되고 한글까지 작성 할수 있게 되어서 속도면에서 굉장히 성능적으로 좋은거 같다.

 

유닉코드를 -> UTF-8로 변환 했을떄  

 

 한글 거를 찾을떄 -> UNICODE: AC70 -> 234, 177, 176

 

여기서 234는 16진수로 변환 하면 -> EA 이다.

 

 

'Java' 카테고리의 다른 글

초기화 블록  (0) 2024.10.29
스트링 빌더와 스트링 연산 최적화  (3) 2024.10.29
2진수와 16진수 +@ 10진수  (0) 2024.10.18
정수 오버플로우  (0) 2024.10.18
시멘틱 버저닝  (0) 2024.10.18