[용어 정리] 유니코드, 인코딩??
[용어 정리] 유니코드, 인코딩??
컴퓨터는 0과 1이라는 값만을 인식할 수 있는 기계장치이다.
어떻게 하면 컴퓨터가 문자를 인식할 수 있게 만들까????
유니코드
- 세계적인 표준 문자셋
- 한 문자를 표현하기 위해 16비트를 사용하는 방식의 세계 문자 표준 코드
- 예를들어 숫자 97은 'a', 숫자 98은 'b' 이런식으로 숫자마다 문자를 mapping해 놓으면 컴퓨터는 해당 숫자를 문자열로 인식할 수 있게 될 것이다.
- 하지만 이렇게 컴퓨터들 마다 각각의 문자셋을 사용했더니 데이터 호환이 안되는 문제가 발생했다.
- 이런 문제를 해결하기 위해서 미국에서 최초로 문자셋 표준인 아스키(ASCII)라는 것이 탄생했다.
- 하지만 아스키(ASCII)는 127개의 문자만을 다룰 수 있기 때문에 아스키를 사용할 수는 없었다.
- 이런 문제를 해결하기 위해서 등장한 구세주가 바로 유니코드(Unicode)이다.
- 유니코드는 모든 나라의 문자를 다 포함하게끔 넉넉하게 설계되었다.
인코딩
- 문자셋의 규칙대로 바이트를 만드는 방법
- 가장 많이 사용되는 것이 utf-8
- 다른 인코딩 방법에 비해 데이터의 사이즈가 작다
- 기존 ascii와 하위 호환성을 갖는다.
- utf-8을 이용하면 이미 ASCII로 작성된 데이터라도 변환없이 utf-8로 그대로 사용 가능
+ 파이썬을 이용해서 실습해보기
- type명령어를 통해서 문자열은 str클래스임의 객체임을 알 수 있음.
- 파이썬에서 사용되는 문자열은 모두 유니코드 문자열
- 유니코드 문자열을 인코딩 없이 그대로 파일에 적거나 시스템 네트워크로 전송 불가능
- 왜냐하면 유니코드 문자열은 단순한 문자셋의 규칙
- 파일에 적거나, 바이트로 변환(인코딩)해야 함
- 파일을 받을 때도 해당 바이트가 어떤 방식의 인코딩을 사용했는지 알아야 디코딩 가능
- 유니코드 문자열을 바이트 문자열로 만들 때에는 위 예처럼 인코딩 방식을 파라미터로 넘겨줘야 함
- 파라미터를 생략하면 디폴트 값인 utf-8로 동작함
- type명령어를 호출해보면 b객체는 bytes클래스임의 객체임을 알 수 있음
참고 : https://wikidocs.net/15133
댓글
댓글 쓰기