탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1용 국제 언어 환경 설명서 Oracle Solaris 11.1 Information Library (한국어) |
코드 세트 변환 또는 문자 세트(charset) 변환 지원은 운영 체제에서 중요한 부분입니다. 이 기능이 있어야 대부분의 응용 프로그램이 올바로 작동합니다.
Oracle Solaris의 현재 릴리스에는 유니코드 지원과 소프트웨어 국제화, 소프트웨어 전역화에 광범위하게 사용되는 라이브러리 및 도구인 ICU(International Components for Unicode)도 포함되어 있습니다.
Oracle Solaris 11에는 코드 세트 변환에 필요한 다양한 도구 및 라이브러리가 포함되어 있습니다. 핵심 코드 세트 변환 유틸리티인 iconv는 Oracle Solaris libc의 iconv 라이브러리로 구성됩니다.
iconv(1) 명령줄 유틸리티는 코드 세트 간에 문자 또는 문자 시퀀스를 변환합니다. 이 유틸리티는 광범위한 코드 세트를 지원합니다. 플랫폼마다 코드 세트 이름이 다른 경우가 많으므로 iconv의 별칭 방식을 기반으로 다양한 코드 세트의 여러 이름이 지원됩니다. 현재 시스템에서 사용 가능한 코드 세트 목록을 얻으려면 다음 명령을 실행하십시오.
$ /usr/bin/iconv -l
여러 패키지에 iconv 모듈이 포함되어 있으므로 추가 패키지를 설치하여 기본 목록을 확장할 수 있습니다. 기본 설치에는 UTF-8 및 다른 유니코드 코드 세트와 선택된 기타 코드 세트 간의 변환에 사용되는 기본적인 일련의 iconv 모듈을 다루는 system/library/iconv/utf-8 패키지가 포함됩니다. 기타 패키지는 패키지 관리자의 System/Internationalization 범주에서 제공되거나 system/library/iconv/* 이름 패턴을 pkg(1) 명령을 통한 설치에 사용할 경우 제공됩니다.
iconv —f 옵션은 소스 코드 세트를 정의하며, -t 옵션은 대상 코드 세트를 정의합니다. 다음과 같이 iconv를 사용하여 파일 또는 표준 입력을 표준 출력으로 변환할 수 있습니다.
$ /usr/bin/iconv -f eucJP -t UTF-8 file.txt
이 예에서는 file.txt 파일 이름이 eucJP 코드 세트(일본어용 확장 UNIX 코드 압축 형식)에서 변환되고 결과가 UTF-8로 표준 출력에 기록됩니다.
Oracle Solaris 11에서는 다음과 같은 특수한 상황에서 변환 동작을 수정하는 플래그가 포함되도록 iconv가 확장되었습니다.
문자가 잘못됨 - 입력 문자가 선언된 소스 코드 세트에 유효하지 않습니다.
문자가 다름 - 대상 코드 세트에 일치하는 문자가 없습니다.
명령줄에 //ILLEGAL_DISCARD, //NON_IDENTICAL_DISCARD , //IGNORE, //TRANSLIT 등의 플래그를 사용할 수도 있습니다. 자세한 내용은 iconv_open(3C) 매뉴얼 페이지를 참조하십시오.
iconv에 대한 자세한 내용은 iconv(1), iconv(3C), iconv_open(3C) 및 관련 매뉴얼 페이지를 참조하십시오.
Oracle Solaris 11에서는 사용 가능한 인터페이스에 ICU(International Components for Unicode) C/C++ 라이브러리를 추가했습니다. ICU는 소프트웨어 응용 프로그램에 유니코드 및 전역화 지원을 제공하는 라이브러리 세트로 광범위하게 사용됩니다. ICU는 이식 가능하며 모든 플랫폼의 응용 프로그램 및 C/C++와 Java 소프트웨어 간의 응용 프로그램에 동일한 결과를 제공합니다.
ICU에서 제공하는 몇 가지 서비스는 다음과 같습니다.
코드 페이지 변환 - 유니코드와 거의 모든 기타 문자 세트 또는 인코딩 간에 텍스트 데이터를 변환합니다.
조합 - 특정 언어, 지역 또는 국가의 규약 및 표준에 따라 문자열을 비교합니다.
형식 지정 - 선택된 로켈에 따라 숫자, 날짜, 시간 및 통화의 형식을 지정합니다.
시간 계산 - 여러 유형의 달력과 철저한 시간대 계산 API 세트가 제공됩니다.
유니코드 지원 - ICU는 유니코드 표준을 면밀히 추적하여 유니코드 표준에 지정된 여러 유니코드 문자 등록 정보, 유니코드 정규화, 대소문자 변환 및 기타 기본적인 작동에 모두 쉽게 액세스할 수 있도록 합니다.
정규 표현식 - ICU 정규 표현식은 매우 뛰어난 성능을 제공하면서 유니코드를 완전히 지원합니다.
Bidi(양방향 텍스트) - 왼쪽에서 오른쪽으로 작성된 데이터와 오른쪽에서 왼쪽으로 작성된 데이터의 조합이 포함된 텍스트를 처리할 수 있도록 지원합니다.
텍스트 경계 - 일정 텍스트 범위에서 단어, 문장 및 단락의 위치를 찾거나 텍스트를 표시할 때 줄바꿈에 적합한 위치를 식별합니다.
Oracle Solaris 11의 ICU는 2개의 패키지로 분할되어 있습니다. library/icu에는 라이브러리만 포함되어 있는 반면, developer/icu는 헤더 파일과 uconv(1) 등의 여러 유틸리티가 포함되어 있습니다.
자세한 내용은 프로젝트 웹 사이트(http://site.icu-project.org)를 참조하십시오. libicui18n(3LIB), libicuio(3LIB), libicudata (3LIB), libicule(3LIB), libiculx(3LIB), libicutu (3LIB) 및 libicuuc(3LIB) 매뉴얼 페이지에서 Oracle Solaris의 라이브러리를 사용하는 방법을 확인할 수 있습니다.
iconv(1) 이외에 ICU(International Components for Unicode) 도구 세트에 포함된 uconv(1) 명령을 사용하여 인코딩 간에 텍스트를 변환할 수도 있습니다. uconv는 1000개가 넘는 별칭과 함께 229개의 인코딩을 지원합니다.
이 도구는 기본적으로 설치되지 않는 developer/icu 패키지의 일부입니다. 이 도구를 설치하려면 다음 명령을 실행하십시오.
# pkg install developer/icu
cp-1252 인코딩에서 UTF-8로 텍스트를 변환하려면 다음을 입력하십시오.
$ uconv -f cp1252 -t UTF-8 -o file_in_utf8.txt file_in_cp1252_encoding.txt
uconv에는 기본 단어를 변환하지 않고 스크립트 간에 문자를 변환하는 음역이라는 기능도 있습니다. 다음 예에서는 그리스어 텍스트를 라틴 문자로 변환합니다.
$ echo “Σολαρις”| uconv -x Greek-Latin -f utf-8 -t utf-8 Solaris
이 도구 기능에 대한 자세한 내용은 uconv(1) 매뉴얼 페이지를 참조하십시오.
파일 인코딩 검사기인 fsexam 유틸리티를 통해 레거시 문자 인코딩에서 UTF-8 인코딩으로 파일 이름 또는 일반 텍스트 파일 내용을 변환할 수 있습니다. fsexam 유틸리티의 새로운 기능은 다음과 같습니다.
인코딩 목록 사용자 정의
인코딩 자동 감지
dry run, 로그 파일, 일괄 처리 변환, 파일 필터링, 심볼릭 파일, 명령줄 및 특수 파일 유형(예: 압축 파일) 지원
시스템에 fsexam을 추가하려면 storage/fsexam 패키지를 설치하십시오. 자세한 내용은 fsexam (1) 및 fsexam(4) 매뉴얼 페이지를 참조하십시오.
Oracle Solaris에는 파일 인코딩 식별용 명령줄 유틸리티인 auto_ef(1)가 포함되어 있습니다. auto_ef는 iconv 코드 변환을 사용하고 파일에서 특정 코드 변환의 성공 여부를 확인하여 인코딩을 판별합니다. 또한 파일에 나타나는 문자 시퀀스에 대해 빈도 분석을 수행합니다. 예를 들어, 다음과 같습니다.
$ auto_ef test_file eucJP
-a 옵션을 사용할 경우 지정된 파일에 대해 가능한 모든 인코딩이 표시됩니다.
$ auto_ef -a test_file eucJP 0.89 zh_CN.euc 0.40 ko_KR.euc 0.01
시스템에 auto_ef를 추가하려면 text/auto_ef 패키지를 설치하십시오. 자세한 내용은 auto_ef(1) 매뉴얼 페이지를 참조하십시오.