관리 메뉴

평행우주 : world 1

[컴퓨터공학] 문자열 본문

텃밭 3 : BE/컴퓨터구조 | 공학

[컴퓨터공학] 문자열

parallelworlds 2022. 2. 22. 23:56

문자열


 

유니코드

  • 유니코드 협회가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준.
  • ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함
  • 유니코드의 목적은 현존하는 문자 인코딩 방법을 모두 유니코드로 교체해 단일화 하는 것

 

인코딩(부호화)

  • 인코딩이란 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것
  • 디코딩은 문자를 해독하는 것
    신호를 입력하는 인코딩과 문자를 해독하는 디코딩을 하기 위해서는 미리 정해진 기준을 바탕으로 입력과 해독이 처리되어야 한다
    인코딩과 디코딩의 기준을 문자열 세트 또는 문자셋(charset)이라고 한다. (문자셋의 국제 표준 : 유니코드)

 

 

 

ASCII 문자

 

  • 영문 알파벳을 사용하는 대표적인 문자 인코딩으로 7 비트로 모든 영어 알파벳 표현
  • 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자 포함
  • 유니코드는 ASCII를 확장한 형태

 

 

 

UTF-8과 UTF-16의 차이점

 

  • UTF-8과 UTF-16은 인코딩 방식의 차이로 나눠진다.

 

 


 

UTF-8 특징

가변 길이 인코딩

유니코드 한 문자를 나타내기 위해 1 byte(= 8 bits) 에서 4 bytes까지 사용

  • UTF-8로 표현된 '코'
    let encoder = new TextEncoder(); // 기본 인코딩은 'utf-8'
    encoder.encode('코') // Uint8Array(3) [236, 189, 148]
    
    (236).toString(2) // "11101100"
    (189).toString(2) // "10111101"
    (148).toString(2) // "10010100"

 

 

바이트 순서 고정

  • UTF-16에 비해 바이트 순서를 따지지 않고, 순서가 정해져 있다.

 

 


 

UTF-16 특징

코드 그대로 바이트로 표현 가능, 바이트 순서가 다양함

  • UTF-16은 유니코드 코드 대부분(U+0000부터 U+FFFF; BMP) 을 16 bits로 표현
  • 이진법으로 표현된 문자를 16 bits(2 bytes)로 그대로 사용하며,
  • 바이트 순서(엔디언)에 따라 UTF-16의 종류도 달라진다
  • UTF-8에서는 한글은 3 바이트, UTF-16에서는 2 바이트를 차지

 

Comments