• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.1 한글메뉴얼) [close]
  • 1. MySQL 5.1 Reference Manual
  • 2. Installing and MySQL 업그레이드하기
  • 3. 사용 설명서 (Tutorial)
  • 4. MySQL 프로그램 사용하기
  • 5. 데이터베이스 관리
  • 6. 리플리케이션
  • 7. 최적화 (Optimization)
  • 8. 클라이언트 및 유틸리티 프로그램
  • 9. 언어 구조 (Language Structure)
  • 10. 문자 셋 지원
  • 1. 일반적인 의미의 문자 셋과 콜레션
    2. MySQL의 문자 셋과 콜레션
    3. 문자 셋과 콜레션 지정하기
    4. 문자 셋과 콜레션 연결하기
    5. 콜레션 이슈
    6. 문자 셋 지원으로 영향을 받는 연산
    7. 유니코드 지원
    8. 메타데이터용 UTF-8
    9. 컬럼 문자 셋 변환
    10. MySQL이 지원하는 문자 셋과 콜레션
  • 24. API 및 라이브러리
  • 25. Connectors

10.7. 유니코드 지원

 

MySQL 5.1은 유니 코드 데이터를 저장하기 위해서 두 가지의 문자 셋을 지원한다:

  • ucs2, UCS-2 유니 코드 문자 셋.
  • utf8, 유니 코드 문자 셋에 대한 UTF-8 인코딩 (encoding).

UCS-2 (binary Unicode representation)의 경우, 모든 문자는 가장 의미가 있는 바이트를 앞에 사용하여 2-바이트 유니 코드로 표현된다. 예를 들면: LATIN CAPITAL LETTER A는 코드 0x0041를 가지며, 이것은 2-바이트 시퀀스 형태로 저장된다: 0x00 0x41. CYRILLIC SMALL LETTER YERU (유니 코드 0x044B)는 2-바이트 시퀀스 형태로 저장된다: 0x04 0x4B.

 

현재까지는, UCS-2를 클라이언트 문자 셋 형태로 사용할 수 없기 때문에, SET NAMES 'ucs2' 는 구동을 하지 않는다.

 

UTF-8 문자 셋은 유니 코드 데이터를 저장하기 위한 또 다른 방식이다. 이것은 RFC 3629에 따라서 구현이 된다. UTF-8 문자 셋은 다양한 유니 코드 문자들이 서로 다른 길이의 바이트 시퀀스를 사용해서 인코딩 된다는 것이다:

  • 기본적인 라틴 문자, 숫자, 그리고 구두점 (punctuation) 기호는 1 바이트를 사용한다.
  • 대부분의 유럽 및 중동 스크립트 문자는 2-바이트 시퀀스를 사용한다: 라틴 문자의 확장형 (틸드(tilde), 마크론(macron), 어큐트(acute), 그레이브(grave) 그리고 기타 액센트를 사용하는 문자), Cyrillic, Greek, Armenian, Hebrew, Arabic, Syriac, 등등.
  • 한국어, 중국어, 그리고 일본어 표의 문자는 3-바이트 시퀀스를 사용한다.

RFC 3629는 1~4바이트를 갖는 인코딩 시퀀스를 설명한다. 현재까지는, UTF-8을 지원하는 MySQL에는 4바이트 시퀀스가 포함되지 않고 있다.

 

Tip: UTF-8과 함께 스페이스를 저장하기 위해서는, CHAR 대신에 VARCHAR를 사용한다. 그렇지 않으면, MySQL은 CHAR CHARACTER SET utf8 컬럼 안에 있는 각각의 문자에 대해서 3 바이트를 지정 (reserve)하는데, 그 이유는 이것이 최대 가능 길이이기 때문이다. 예를 들면, MySQL 은 CHAR(10) CHARACTER SET utf8 컬럼에 대해서는 30 바이트를 반드시 지정 (reserve)해야 한다.

 

서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved