인코딩과 디코딩(encoding & decoding)
문자 인코딩(encoding) : 문자를 코드로 변환하는 것 ex) 'A' -> 65
문자 디코딩(decoding) : 코드를 문자로 변환하는 것 ex) 65 -> 'A'
아스키(ASCII)
정보 교환을 위한 미국 표준 코드
128개(=2^7)의 문자 집합을 제공하는 7 bit 부호,
처음 32개의 문자는 인쇄와 전송 제어용으로 사용되는 제어문자로 출력할 수 없음
마지막 문자(DEL)를 제외한 33번째 이후의 문자들은 출력할 수 있는 문자들로 기호와 숫자, 영대소문자로 이루어져 있음
숫자 0 ~ 9, 영문자 A ~ Z, a ~ z 가 연속적으로 배치되어 있어 프로그래밍에서 유용하게 활용됨
확장 아스키와 한글
데이터 단위인 byte 기준, 아스키는 7 bit 이므로 1 bit가 남는다
이 남는 공간을 활용해 문자를 추가로 정의한 것이 확장 아스키이다
확장 아스키에 추가된 128개의 문자는 여러 국가와 기업에서 필요에 따라 다르게 정의해 사용
코드 페이지 : 확장 아스키의 256개 문자를 어떤 숫자로 변환할 것인지를 적어놓은 문자 코드표
유니코드 : 전 세계의 모든 문자를 하나의 통일된 문자집합으로 표현한 것
유니코드 문자 셋 : 유니코드에 포함시키고자 하는 문자들의 집합
유니코드 인코딩 : 문자 셋에 번호를 붙인 것 ex) UTF-8(1~4byte 가변), UTF-16(2byte 고정), UTF-32
자바에서는 UTF-16을 사용
코드 포인트 : 유니코드 문자 셋에 순서대로 붙인 일련번호
UTF-16
모든 문자의 크기(2 byte)가 동일해 다루기 편리하나 문서의 크기가 커짐
UTF-8
영문과 숫자(1 byte), 한글(3 byte)로 표현해 문서의 크기가 작으나 다루기 어렵다
문서의 크기가 작을수록 인터넷에서 전송속도가 빨라지므로 UTF-8인코딩을 많이 사용한다
'Backend > Java' 카테고리의 다른 글
자바의 정석 정리(9) - 실수형 (0) | 2022.05.23 |
---|---|
자바의 정석 정리(8) - 정수형 (0) | 2022.05.22 |
자바의 정석 정리(6) - 기본형 타입 (0) | 2022.05.19 |
자바의 정석 정리(5) - 진법과 보수 (0) | 2022.05.19 |
자바의 정석 정리(4) - 실수형 출력 (0) | 2022.05.18 |