국제 언어 환경 설명서

2장 일반 국제화 기능

이 절은 Solaris Operating System 환경에 포함된 여러 국제화 기능에 대해 다룹니다. 이 장은 다음 내용으로 구성되어 있습니다.

코드 세트 독립 지원

EUC는 Extended UNIX® Code의 축약입니다. Solaris Operating System은 일본의 PC-Kanji(Shift_JIS로 더 잘 알려짐), 대만의 Big5, 중화인민공화국의 GBK와 같은 비EUC 코드화를 지원합니다. 대다수의 컴퓨터 시장에서 비 EUC 코드 세트 지원을 요구하기 때문에 현재 Solaris 환경은 EUC와 비 EUC 코드 세트 지원을 활성화하는 견고한 프레임워크를 제공합니다. 이 지원을 코드 세트 독립 또는 CSI라고 합니다.

CSI의 목적은 Solaris Operating System 라이브러리와 명령으로부터, 특정한 코드 세트나 코드화 방법에 대한 의존성을 제거하는데 있습니다. CSI 아키텍처는 Solaris Operating System에서 모든 UNIX 파일 시스템 안전 코드화를 지원할 수 있도록 합니다. CSI는 UTF-8, PC-Kanji 및 Big5와 같은 많은 새 코드 세트를 지원합니다.

CSI 접근 방법

CSI는 응용프로그램 및 플랫폼 소프트웨어 개발자가 UTF-8 같은 모든 코드화와 무관하게 코드를 작성할 수 있도록 해 주며, 또한 소스 코드를 수정하지 않고서도 새로운 코드화 방식을 적용할 수 있도록 해 줍니다. 이 아키텍처 접근 방법은 응용 프로그램이 UTF 종속적일 필요가 없기 때문에 JavaTM 국제화와 다릅니다.

많은 기존 국제화된 응용프로그램(예를 들어, Motif)이 기본 시스템에서 자동으로 CSI 지원을 상속합니다. 이러한 응용프로그램은 수정 없이 새 로켈에서 작동합니다.

CSI는 본질적으로 모든 코드 세트로부터 독립적입니다. 그러나 파일 코드 코드화(코드 세트)에 대한 다음 가정이 현재 Solaris 환경에 적용됩니다.

CSI화 된 명령

이 절은 현재 Solaris 환경의 CSI화 된 명령을 나열합니다. 각 명령어의 설명서 페이지에는 명령이 CSI화 되었는지를 나타내는 속성 부분이 있습니다.

모든 명령은 특별히 표시되지 않는 한, /usr/bin 디렉토리에 있습니다.

CSI 활성화 라이브러리

libc (/usr/lib/libc.so)의 거의 모든 기능이 CSI 활성화되었습니다. 그러나 libc의 다음 함수는 EUC 종속 함수이기 때문에 CSI화 되지 않았습니다.

현재 Solaris 제품에서 libgen /usr/ccs/lib/libgen.a libcurses /usr/ccs/lib/libcurses.a 는 국제화되었지만 CSI화 되지 않았습니다.

로켈 데이터베이스

로켈 데이터베이스 형식과 구조는 운영 환경 내부적이며 향후 릴리스에서 변경될 것입니다. 국제화 응용 프로그램을 개발할 경우 libc의 국제화 API를 사용합니다. 이 API는 로켈 데이터베이스에 연결되지 않고 libc의 국제화 API에서 설명됩니다.


주 –

Solaris 환경으로 작업할 때 현재 Solaris 제품에 포함된 로켈 데이터베이스를 사용하십시오. 이전 Solaris 버전의 로켈을 사용하지 마십시오.


프로세스 코드 형식

Solaris 9 제품에서 '넓은 문자'로 알려져 있는 프로세스 코드 형식은 Solaris Operating System 운영 환경 내부적인 것이며 향후 릴리스에서 변경될 것입니다. 따라서, 국제화된 응용프로그램을 개발할 때 프로세스 코드 형식이 동일하다고 가정하지 마십시오. 대신 libc의 국제화 API에서 설명된 libc 의 국제화 API 를 사용하십시오.


주 –

모든 유니코드의 프로세스 코드는 UTF 32 표현에 있습니다. UTF-32에 대한 자세한 내용은 유니코드 컨소시엄의 “Unicode Standard Annex #19: UTF 3 및 Unicode Standard Annex #27: 유니코드 컨소시엄의 Unicode 3.1 또는 http://www.unicode.org/를 참조하십시오.


멀티바이트 지원 환경

멀티바이트 문자는 중국어, 일본어 또는 한국어 문자와 같이 단일 바이트로는 저장할 수 없는 문자입니다. 이러한 문자는 기억 장치의 2, 3 또는 4바이트가 필요합니다. 더 정확한 정의는 ISO/IEC 9899:1990 부속 절 3.13에서 찾을 수 있습니다.

추가된 새 국제화 기능, ISO/IEC 9899:1990라고도 하는 ANSI C에 대한 개정 1은 일괄하여 멀티바이트 지원 환경(MSE)이라고도 합니다. 개정 1은 상태가 있는 멀티바이트 코드 세트와 더 나은 와이드캐릭터 처리 지원을 위한 추가 국제화 API를 정의합니다.

프로그래밍 모델은 멀티바이트 문자가 논리 장치에서 읽히고 내부적으로 넓은 문자로 저장 가능하게 합니다. 넓은 문자는 프로그램에 의해 논리적 엔티티로 처리될 수 있습니다. 최종적으로 이 넓은 문자는 적절한 변환을 거쳐 논리적 단위로 외부장치로 쓰여질 수 있습니다.

절차는 단일바이트 문자가 읽히고 조작되며 재작성되는 방식과 유사합니다. MSE는 프로그램이 단일바이트 문자에 사용되는 동일한 프로그래밍 모델을 사용하여 멀티바이트 문자를 처리하도록 합니다.

동적으로 링크된 응용프로그램

동적 링크 만들기 또는 정적 링크 만들기를 사용하여 libc응용 프로그램을 시스템 라이브러리와 함께 링크로 만들 수 있습니다시스템 라이브러리에 국제화 기능이 필요한 모든 응용 프로그램은 동적으로 링크되어야 합니다. 만약 응용프로그램이 정적으로 링크가 되어 있을 경우, setlocale을 호출해서 로켈을 C나 POSIX 이외의 다른 로켈로 설정할 수 없습니다. 정적으로 링크된 응용프로그램은 C 및 POSIX 로켈에서만 작동할 수 있습니다.

기본적으로, 링커 프로그램은 응용프로그램을 동적으로 연결하려고 시도합니다. 링커 및 컴파일러에 대한 명령줄 옵션이 -Bstatic 또는 -dn 사양을 포함하면 응용프로그램이 정적으로 링크될 수 있습니다. 기존 응용프로그램이 /usr/bin/ldd 명령을 사용하여 동적으로 링크되었는지 확인할 수 있습니다.

예를 들어, 다음 명령에 대한 응답은 /sbin/sh 명령이 동적으로 링크된 프로그램이 아님을 나타냅니다.


% /usr/bin/ldd /sbin/sh
ldd: /sbin/sh: file is not a dynamic executable or shared object

이 응답은 /usr/bin/ls 명령이 두 라이브러리, libc.so.1libdl.so.1과 동적으로 링크되었음을 나타냅니다.


% /usr/bin/ldd /usr/bin/ls
libc.so.1 => 	/usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1

변경된 인터페이스

libwlibintllibc로 이동하여 더 이상 libwlibintl에 없습니다.

공유 객체(shared object)는 기존 응용프로그램에 대한 런타임 호환성을 보장하고, 아카이브와 함께 응용프로그램을 빌드하기 위한 컴파일 환경의 호환성도 제공합니다. 그러나 더 이상 libwlibintl에 프로그램을 링크시키지 말아야 합니다.

다음 목록은 libw의 스터브 시작점을 보여줍니다.

다음 목록은 libintl의 스터브 시작점을 보여줍니다.

ctype 매크로

문자 분류 및 문자 변형 매크로는 /usr/include/ctype.h에서 정의됩니다. 현재 Solaris 환경은 XPG4로 정의되는 문자 분류 및 변형 의미를 지원하는 ctype 매크로 세트를 제공합니다. 모든 XPG4XPG4.2 응용 프로그램의 경우 다음 중 하나의 조건이 충족되어야 합니다.

_XOPEN_SOURCE, _XOPEN_VERSION_XOPEN_SOURCE_EXTENDED가 새 ctype 매크로 외에 추가 XPG4 관련 기능을 가져오기 때문에 비XPG4 또는 XPG4.2 응용프로그램은 __XPG4_CHAR_CLASS__를 사용해야 합니다.

해당 ctype 함수도 존재합니다. 현재 Solaris 환경 함수는 XPG4 의미도 지원합니다.

libc의 국제화 API

현재 Solaris 환경은 두 개의 API 세트를 제공합니다.

와이드캐릭터는 논리적 엔티티로서 고정폭의 단위입니다. 따라서, 멀티바이트 문자를 사용할 때처럼 계속해서 문자의 경계를 추적해야 할 필요가 없습니다.

프로그램이 파일에서 입력을 받으면 사용자는 fscanffwscanf와 같은 입력 기능으로 직접 또는 입력 후 mbtowcmbsrtowcs와 같은 변환 기능을 사용하여 자기 파일의 멀티바이트 데이터를 넓은 문자 프로세스 코드로 직접 변환할 수 있습니다 . 넓은 문자 형식에서 멀티바이트 문자 형식으로 출력 데이터를 변환하려면 fwprintf(3S) 및 fprintf(3S)와 같은 출력 함수를 사용하거나 출력 후 wctomb(3C) 및 wcsrtombs(3C)와 같은 변환 함수를 적용하십시오.

이 장의 나머지 표는 현재 Solaris 제품에 포함된 국제화 API에 대해 설명합니다.

다음 표는 libc의 메시지 처리 함수 API를 설명합니다.

표 2–1 메시징 libc의 기능

라이브러리 루틴 

설명 

bindtextdomain()

메시지 도메인에 대한 경로 바인드 

catclose()

메시지 카탈로그 닫기 

catgets()

프로그램 메시지 읽기 

catopen()

메시지 카탈로그 열기 

dcgettext()

도메인과 범주를 지정하여 메시지 카탈로그에서 메시지 얻기 

dgettext()

도메인을 지정하여 메시지 카탈로그에서 메시지 얻기 

gettext()

메시지 데이터베이스에서 텍스트 문자열 검색 

textdomain()

현재 도메인을 설정 및 질의 

다음 표는 libc의 코드 변환 기능 API를 설명합니다.

표 2–2 코드 libc의 변환

라이브러리 루틴 

설명 

iconv()

코드 변환 

iconv_close()

변환 설명자 할당 해제 

iconv_open()

변환 설명자 할당 

다음 표는 libc의 정규 표현식 API를 설명합니다.

표 2–3 정규 libc의 표현식

라이브러리 루틴 

설명 

fnmatch()

파일 이름 또는 경로 이름 일치 

regcomp()

정규식 컴파일 

regerror()

오류 코드에서 오류 메시지로의 매핑을 제공 

regexec()

정규식 매칭 실행 

regfree()

regcomp()가 할당한 사용 가능 메모리

다음 표는 libc의 넓은 문자 함수 API를 설명합니다.

표 2–4 넓은 libc의 문자 클래스

라이브러리 루틴 

설명 

wctrans()

문자 매핑 정의 

wctype()

문자 클래스 정의 

다음은 libc의 로켈 수정 및 질의를 나열합니다.

표 2–5 libc로켈 수정 및 질의

라이브러리 루틴 

설명 

setlocale()

프로그램의 로켈 수정 및 질의 

다음 표는 libc로켈 데이터 질의를 나열합니다.

표 2–6 libc의 로켈 데이터 질의

라이브러리 루틴 

설명 

localeconv()

현재 로켈의 통화 및 숫자 형식 정보 얻기 

nl_langinfo()

현재 로켈의 언어 및 문화 정보 얻기 

다음 표는 libc의 문자 분류 함수 API를 설명합니다.

표 2–7 libc의 문자 분류 및 음역

라이브러리 루틴 

설명 

isalnum()

문자가 알파벳인가 숫자인가? 

isalpha()

문자가 알파벳인가? 

isascii()

문자가 ASCII 문자인가?  

iscntrl()

문자가 제어 문자인가?  

isdigit()

문자가 숫자인가? 

isenglish()

영어 알파벳의 넓은 문자가 추가 코드 세트에 왔는가? 

isgraph()

문자가 가시 문자인가?  

isideogram()

넓은 문자가 표의 문자인가? 

islower()

문자가 소문자인가? 

isnumber()

넓은 문자가 추가 코드 세트의 숫자인가? 

isphonogram()

넓은 문자가 표음 문자인가? 

isprint()

문자가 인쇄 가능한가? 

ispunct()

문자가 구두점인가? 

isspace()

문자가 공백인가? 

isspecial()

특수 넓은 문자가 추가 코드 세트에 있는가? 

isupper()

문자가 대문자인가? 

iswalnum()

넓은 문자가 알파벳 문자인가 숫자인가? 

iswalpha()

넓은 문자가 알파벳인가?  

iswascii()

넓은 문자가 ASCII 문자인가? 

iswcntrl()

넓은 문자가 제어 문자인가? 

iswdigit()

문자가 숫자인가?  

iswgraph()

넓은 문자가 가시 문자인가? 

iswlower()

넓은 문자가 소문자인가?  

iswprint()

넓은 문자가 인쇄 가능 문자인가? 

iswpunct()

넓은 문자가 구두점인가? 

iswspace()

넓은 문자가 빈 공백인가?  

iswupper()

넓은 문자가 대문자인가?  

iswxdigit()

넓은 문자가 6진수인가?  

isxdigit()

문자가 16진수인가? 

tolower()

대문자를 소문자로 변환합니다. 

toupper()

소문자를 대문자로 변환합니다. 

towctrans()

넓은 문자 매핑 

towlower()

대문자 넓은 문자를 소문자로 변환합니다. 

towupper()

소문자 넓은 문자를 대문자로 변환합니다. 

다음 표는 libc의 문자 조합 함수 API를 설명합니다.

표 2–8 libc의 문자 조합

라이브러리 루틴 

설명 

strcoll()

문자열 조합 

strxfrm()

비교를 위해 문자열 변환 

wcscoll()

넓은 문자열 조합 

wcsxfrm()

비교를 위해 넓은 문자열 변환 

다음 표는 libc의 통화 처리 함수 API를 설명합니다.

표 2–9 libc의 통화 형식

라이브러리 루틴 

설명 

localeconv()

현재 로켈의 통화 형식 정보 얻기 

strfmon()

통화 값을 문자열 표현으로 변환 

다음 표는 libc의 날짜 및 시간 형식을 설명합니다.

표 2–10 libc의 날짜 및 시간 형식

라이브러리 루틴 

설명 

getdate()

사용자 형식 날짜 및 시간을 변환 

strftime()

날짜 및 시간을 문자열 표현으로 변환%u 변환 기능은 X/Open CAE 사양, 시스템 인터페이스 및 헤더, 4판, 버전 2를 준수합니다. 이 기능은 평일을 십진수로 표현하여 [1,7]에서 1은 월요일을 나타냅니다..

strptime()

날짜 및 시간 변환 

다음 표는 libc의 멀티바이트 처리 함수 API를 설명합니다.

표 2–11 멀티바이트 libc의 처리

라이브러리 루틴 

설명 

btowc()

단일바이트를 넓은 문자로 변환 

mblen()

문자의 바이트 수 얻기 

mbrlen()

문자의 바이트 수 얻기(다시 시작 가능) 

mbrtowc()

문자를 넓은 문자 코드로 변환(다시 시작 가능) 

mbsinit()

변환 객체 상태 결정 

mbsrtowcs()

문자열을 넓은 문자열로 변환(다시 시작 가능) 

mbstowcs()

문자열을 넓은 문자열로 변환 

mbtowc()

문자를 넓은 문자 코드로 변환 

다음 표는 libc의 넓은 문자 및 문자열 처리를 설명합니다.

표 2–12 libc의 넓은 문자 및 문자열 처리

라이브러리 루틴 

설명 

wcrtomb()

넓은 문자를 문자로 변환(다시 시작 가능) 

wcscat()

넓은 문자열 연결 

wcschr()

넓은 문자열에서 문자 찾기 

wcscmp()

넓은 문자열 비교 

wcscpy()

넓은 문자열 복사 

wcscspn()

다른 넓은 문자열에 없는 하나의 넓은 문자열 범위 반환 

wcslen()

넓은 문자열 길이 얻기 

wcsncat()

넓은 문자를 길이 n으로 연결

wcsncmp()

넓은 문자를 길이 n과 비교

wcsncpy()

넓은 문자를 길이 n으로 복사

wcspbrk()

다른 넓은 문자열에 없는 하나의 넓은 문자열 포인터 반환 

wcsrchr()

오른쪽부터 넓은 문자열에서 문자 찾기 

wcsrtombs()

넓은 문자열을 문자열로 변환(다시 시작 가능) 

wcsspn()

다른 넓은 문자열에 있는 하나의 넓은 문자열 범위 반환 

wcstod()

넓은 문자열을 배정도로 변환 

wcstok()

넓은 문자열을 통해 토큰 이동 

wcstol()

넓은 문자열을 긴 정수로 변환 

wcstombs()

넓은 문자열을 멀티바이트 문자열로 변환 

wcstoul()

넓은 문자열을 부호없는 긴 정수로 변환 

wscwcs()

넓은 문자열에서 문자열 찾기 

wcswidth()

넓은 문자열의 열 위치 수 결정 

wctob()

넓은 문자를 단일바이트로 변환 

wctomb()

넓은 문자를 멀티바이트 문자로 변환 

wcwidth()

넓은 문자의 열 위치 수 결정 

wscol()

넓은 문자열의 표시 너비 반환 

wsdup()

넓은 문자열 중복 

다음 표는 libc의 형식화된 넓은 문자 입출력을 설명합니다.

표 2–13 libc의 형식화된 넓은 문자 입력 및 출력

라이브러리 루틴 

설명 

fwprintf()

형식화된 넓은 문자 출력 인쇄 

fwscanf()

형식화된 넓은 문자 입력 변환 

swprintf()

형식화된 넓은 문자 출력 인쇄 

swscanf()

형식화된 넓은 문자 입력 변환 

vfwprintf()

stdarg 인자 목록의 넓은 문자 형식화된 출력

vswprintf()

stdarg 인자 목록의 넓은 문자 형식화된 출력

wprintf()

형식화된 넓은 문자 출력 인쇄 

wscanf()

형식화된 넓은 문자 입력 변환 

wsprintf()

형식에 따라 넓은 문자열 생성 

wsscanf()

형식화된 입력 변환 

이 표는 libc의 넓은 문자열 함수 API를 설명합니다.

표 2–14 libc의 넓은 문자열

라이브러리 루틴 

설명 

wcsstr()

넓은 문자열 부속 문자열 찾기 

wmemchr()

메모리의 넓은 문자 찾기 

wmemcmp()

메모리의 넓은 문자 비교 

wmemcpy()

메모리의 넓은 문자 복사 

wmemmove()

겹친 영역이 있는 메모리의 넓은 문자 복사 

wmemset()

메모리의 넓은 문자 설정 

wscasecmp()

넓은 문자열을 비교하고 대소문자 차이를 무시 

wsncasecmp()

코드 문자열 작업 프로세스 

다음 표는 libc의 넓은 문자 입출력을 설명합니다.

표 2–15 libc의 넓은 문자 입력 및 출력

라이브러리 루틴 

설명 

fgetwc()

스트림에서 멀티바이트 문자를 얻어 넓은 문자로 변환 

fgetws()

스트림에서 멀티바이트 문자열을 얻어 넓은 문자로 변환 

fputwc()

넓은 문자열을 멀티바이트 문자로 변환하여 스트림에 넣기 

fputws()

넓은 문자를 멀티바이트 문자열로 변환하여 스트림에 넣기 

fwide()

스트림 방향 설정 

getwchar()

stdin에서 멀티바이트 문자를 얻어 넓은 문자로 변환

getws()

stdin에서 멀티바이트 문자열을 얻어 넓은 문자로 변환

putwchar()

넓은 문자열을 멀티바이트 문자로 변환하여 stdin에 넣기

putws()

넓은 문자를 멀티바이트 문자열로 변환하여 stdin에 넣기

ungetwc()

넓은 문자를 입력 스트림으로 푸시백 

genmsg 유틸리티

genmsg 유틸리티는 catgets() 계열의 함수들이 사용할 수 있는, 국제화된 소스 메시지 카탈로그를 만드는데 사용됩니다. 유틸리티는 catgets의 함수에 대한 호출을 위해 소스 프로그램 파일을 조사하고 찾은 정보에서 소스 메시지 카탈로그를 구축합니다. 예를 들면 다음과 같습니다.

% cat example.c
	...
	/* NOTE: %s is a file name */
	printf(catgets(catd, 5, 1, "%s cannot be opened."));
	/* NOTE: "Read" is a past participle, not a present
 
			tense verb */
	printf(catgets(catd, 5, 1, "Read"));
	...
% genmsg -c NOTE example.c
The following file(s) have been created.
			new msg file = "example.c.msg"
% cat example.c.msg
$quote "
$set 5
1			"%s cannot be opened"
	/* NOTE: %s is a file name */
2			"Read"
	/* NOTE: "Read" is a past participle, not a present
			tense verb */

위 예제에서, genmsg를 소스 파일 example.c에 실행하여, example.c.msg라는 소스 메시지 카탈로그를 생성해 냈습니다. 인자 NOTE를 옵션 -c와 함께 사용하여 genmsg가 카탈로그 안에 주석을 포함하도록 합니다. 소스 프로그램의 주석이 지정된 문자열을 포함하면 주석은 메시지 카탈로그에서 catgets에 대한 호출에서 추출된 다음 문자열 후에 나타납니다.

genmsg를 사용하여 메시지 세트에서 메시지를 자동으로 번호 매길 수 있습니다.

자세한 내용은 genmsg(1) 설명서 페이지를 참조하십시오.

형식화된 메시지 카탈로그 파일을 생성하려면 gencat (1) 유틸리티를 사용하십시오.

이식 가능 메시지 파일(.po files)에 대한 메시지 추출 유틸리티와 .po파일에서 메시지 객체 파일(.mo 파일)을 생성하는 방법에 대한 자세한 내용을 참조하십시오.

사용자 정의 및 사용자 확장 가능 코드 변환

사용자는 geniconvtbl 유틸리티를 사용하여 사용자 정의 코드 세트 변환기를 작성할 수 있습니다.

이 유틸리티를 사용하여 iconv(1) 및 iconv(3C)와 같은 표준 시스템 유틸리티 및 인터페이스를 사용하는 사용자 정의 및 사용자 정의 가능 코드 세트 변환을 할 수 있습니다. 이 기능은 응용프로그램이 호환되지 않는 데이터 유형, 특히 독점 소유 또는 구형 응용프로그램의 데이터를 처리하는 능력을 향상시킵니다. 기존 Solaris 코드 세트 변환에 대한 수정도 지원됩니다.

유틸리티에 대한 예제 입력 소스 파일은 /usr/lib/iconv/geniconvtbl/srcs/ 디렉토리로 사용 가능합니다.

사용자 정의 코드 변환이 제대로 준비 및 배치되면 사용자는 32비트 및 64비트 Solaris Operating System의 iconv(1) 유틸리티 및 iconv(3C) 기능의 코드 변환을 사용할 수 있습니다 .

국제화된 도메인 이름(IDN) 지원

국제화된 도메인 이름(IDN)을 사용하여 비영어 토착 언어 이름을 호스트 및 도메인 이름으로 사용할 수 있습니다. 비영어 호스트 및 도메인 이름을 사용하려면 이름을 RFC 3490에 지정된 해결자 루틴으로 보내기 전에 ASCII 호환 코드화(ACE) 코드화된 이름으로 이름을 변환합니다. 시스템 관리자는 또한 시스템 관리자 응용 프로그램이 IDN을 지원하지 않는 시스템 파일과 응용 프로그램에서 ACE 이름을 사용해야 합니다.

RFC 3490 응용 프로그램의 국제화 도메인 이름(DNA)을 참조하십시오.

libidnkit(3EXT)의 국제화 도메인 이름용 API는 UTF-8 또는 응용 프로그램 로켈의 코드 세트 및 ACE 사이의 편리한 변환을 제공합니다. idn_decodename2(3EXT)이 사용되면 자의적 코드 세트 이름을 입력 인자의 코드 세트로 지정할 수 있습니다.

그림 2–1 IDN 대 ACE 변환

그림은 비영어 이름의 ASCII 호환 코드화 문자열 변환을 표시합니다

그림 2–2 ACE 대 IDN 변환

그림은 ASCII 호환 코드화 문자열의 비영어 이름 변환을 표시합니다.

다음 표는 사용할 수 있는 iconv 코드 변환을 표시합니다.

표 2–16 iconv 코드 변환

출처 코드 

대상 코드 

ACE 

ACE-ALLOW-UNASSIGNED 

UTF-8 

UTF-8 

UTF-8 

UTF-8 

ACE 

ACE-ALLOW-UNASSIGNED 

ACE 및 ACE-ALLOW-UNASSIGNED iconv 코드 변환 이름은 다음 의미를 갖습니다.

다음 예는 hostnames.txt 파일의 입력을 가진 ACE에서 UTF-8로 변환을 보여줍니다. 출력은 표준 출력입니다.

system% iconv -f ACE -t UTF-8 hostnames.txt

전용 IDN 변환 유틸리티 idnconv(1)는 여러 옵션을 가진 IDN 변환을 제공합니다. 옵션은 변환 세부사항을 제어합니다.

IDN, 변환 루틴 및 iconv 코드 변환에 대한 자세한 내용은 libidnkit(3LIB), idn_decodename(3EXT), idn_decodename2(3EXT), idn_encodename(3EXT) 및 iconv_en_US.UTF-8(5) 설명서 페이지를 참조하십시오.