본문 바로가기
cs공부/네트워크프로그래밍

네트워크프로그래밍 - ENCODING(ASCII,UTF-8,UTF-16)

by 코딩하는 돼징 2023. 8. 8.
반응형

ENCODING

문자열을 네트워크 패킷에 직렬화하여 보내기 위해서는 문자의 인코딩 방식을 고려해야한다. 문자열은 컴퓨터 내부에서는 숫자로 표현되며 텍스트를 어떤 숫자로 변환하고 그 역도 수행하는 과정이 필요하다. 이런 과정을 인코딩이라고 한다.

간단하게 사람의 언어를 컴퓨터의 언어로 변경하는 것이다.


ASCII (American Standard Code for Information Interchange)

ASCII는 영문 알파벳과 일부 특수 문자를 표현하기 위해 개발된 인코딩 방식이다. 각 문자를 7비트로 표현하며 총 128개의 문자를 표현할 수 있다. 영문에는 유용하지만 다른 언어를 지원하기에는 부족하다.

출처 : https://www.asciitable.com/


 

UNICODE

전세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 처리하기 위한 표준 인코딩 체계이다. 다양한 언어와 문자체계를 하나의 통합된 시스템으로 표현할 수 있도록 설계하였으며 모든 문자에 고유한 코드 숫자를 부여하여 문자를 표현한다.

'A' : U+0041

'가' : U+ac00

초기에는 2Byte(65536)로 문자를 표현하였으나 언어의 다양성에 따라 3Byte까지 확장되었다.

BMP(Basic multilingual plane)

유니코드의 첫째(0번) 평면으로, U+0000부터 U+FFFF까지의 영역을 나타낸다.

 

출처 : https://jrgraphix.net/r/Unicode/


UTF (Unicode Transformation Format)

 

유니코드 문자를 인코딩하는 방식이다.

 

UTF8 Encoding

가변 길이 인코딩으로 영문 알파벳은 1Byte로 표현하고 한글과 같은 다국어 문자는 3Byte로 표현하는 인코딩 방식이다. 그러므로 영문권에서 효율적이다.

 

UTF16 Encoding

BMP에 포함된 문자들은 2Byte 그외의 문자는 4Byte로 표현된다.

C#에서는 기본적으로 Char가 2Byte로 처리되며 UTF-16을 사용한다. 

 

 

 

반응형

댓글