Native/C

유니코드(Unicode) 관련 C 언어 source (unicode)

aucd29 2013. 10. 2. 18:54

유니코드(Unicode) 관련 C 언어 source

여기에는 제가 만든 유니코드 관련 프로그램들을 공개합니다. 현재 계속 수정중이기 때문에 소스가 좀 지저분하더라도 이해하시기 바랍니다. 유니코드에 대한 소개는 생략하겠습니다. 왼쪽 메뉴의 사이트 링크나 웹 검색으로 유니코드에 대한 자세한 정보를 얻으실 수 있습니다. 지금까지 만들어진 것은 코드영역별 헤더파일과 한자-한글 변환 함수 및 어절분리기(tokenizer) 입니다. 제가 만든 소스는 공개된 것들이므로, 공익에 반한 목적이 아닌 곳에는 어떠한 형태로 사용되어도 좋습니다.

주의: 여기에서 제공되는 모든 소스는(IconvString 제외) Unicode 3.0에 정의된 코드만을 처리할 수 있습니다. 정확하게 얘기하자면 BMP의 65536자만을 대상으로 하는 것입니다. 따라서 이를 넘어가는 영역의 코드를 처리하기위해서는 코드를 새로 작성하셔야 합니다. unicode.org에서 제공하는 소스를 사용하시기 바랍니다. 자세한 내용은 유니코드 개요 문서를 참조하십시오.

  • UniCharts.h(유니코드영역 header)
  • Unicode 3.0에 기반하여 41개의 언어 영역으로 구분하였습니다.
    [설명 및 소스]
  • UTF-8 어절 분리기(Tokenizer)
  • 어절분리기는 현재 '+'를 제외한 모든 공백문자, 특수문자 등에서 어절(token)을 분리합니다.
    [소스, 어절분리시험 프로그램, 등등]
  • 유니코드 한자한글변환기
  • Unicode 3.0에 지정된 약 3만자(27,786자)의 한자를 한글로 변환할 수 있습니다.
    [소스, 시험 프로그램, 헤더 등등]
  • 코드변환기(iconv wrapper)/IconvString()
  • GNU의 iconv에 기반한 문자열의 코드변환 함수입니다. GCC를 사용하신다면 libiconv를 설치하실 필요는 없습니다. 요즘 gcc는 iconv를 기본적으로 지원합니다. UCS-2의 경우 첫번째 글자만 변환하는 버그가 있으니 참조하시기 바랍니다. [소스]
  • UCS2/UTF8 코드변환기
  • UTF8과 UCS2간의 코드변환 함수 입니다. 이 두 encoding간의 변환은 단순한 비트연산을 하면 되므로 소스는 매우 간단합니다. 두 코드간의 변환 시험은 UTF8을 읽어서 UCS2로 변환한 다음 이를 다시 UTF8로 바꾸는 것입니다. 결과가 동일하면 잘 작동하는 것이겠죠? Unicode를 UTF-8로 인코딩하는 방식은 웹에서 검색해서 찾아 보시기 바랍니다 :-)
    [소스] [변환 시험]

    어절분리 및 한자한글변환 시험 CGI들은 UTF-8로 인코딩된 문자열을 기반으로 작성되었습니다. 시험에 사용한 파일은 utf8sample.txt 파일입니다. 관리상 불편해서 tar등으로 묶은 파일은 제공하지 않습니다. 필요하시면, 왼쪽 메뉴에서 필요한 소스를 받아가시기 바랍니다.

    현재 유니코드에 대한 입문서를 작성하고 있습니다. 참조하시기 바랍니다. 그리고 이 작업이 끝나는 대로 이 페이지를 대대적으로 정리할 계획입니다.

    UTF-8과 UCS-2간의 변환 소스는 방준영님의 소스를 참고하여 만들었는데, 지금은 방준영님의 홈페이지에서 한글 처리 부분을 찾을 수가 없군요. 어쨌든, 방준영님께 지면을 빌어 감사드립니다. 그리고 이 곳은 계속 작업중이므로 내용이 달라질 수가 있습니다. 혹시 의문나는 것이나 잘못된 것이 있으면 왼쪽 메뉴에 있는 제 연락처로 메일 주십시오. -- 김진숙