Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
idn.conf(5)		      File Formats Manual		   idn.conf(5)

       idn.conf,  .idnrc,  idnalias.conf  - configuration files	for idnkit li-


       idn.conf	and .idnrc are configuration files for idnkit library which is
       a toolkit for handling internationalized	domain names.

       idnkit  library	tries  to  load	the user's configuration file ~/.idnrc
       first,  and  then  tries	 the  system   configutation   file   /usr/lo-
       cal/etc/idn.conf.  Note that idnkit library loads either, not both.

       To  use	internationalized domain names in DNS or other protocols, they
       must be converted to an appropriate format before  further  processing.
       In idnkit, this conversion process is comprised of the following	tasks.

       1. Convert the given domain name	in application's local codeset to Uni-
	  code,	and vice versa.

       2. Map certain characters in the	name to	period character so that  they
	  are treated as the domain name delimiter (delimiter mapping).

       3. Map  certain	characters in the name to other	characters or chracter
	  sequences, according to a mapping rule determined by its  top	 level
	  domain (TLD).

       4. Perform  NAMEPREP, which is a	starndard name preparation process for
	  internationalized domain names.  This	process	 is  composed  of  the
	  tree	steps  called  mapping,	 normalization,	 prohibited  character
	  checking and bidirectional string checking.

       5. Convert the nameprepped name to IDN encoding,	which is the  standard
	  encoding  for	 internationalized  domain names (also known as	ASCII-
	  compatible encoding, ACE), and vice versa.

       The configuration file specifies	the parameters for these  tasks,  such

	 - the encoding	of internationalized domain names (IDN encoding).

	 - NAMEPREP schemes.

       The  configuration  file	 is  a simple text files, and each line	in the
       file (other than	comment	lines,	which  begin  with  ``#'',  and	 empty
       lines) forms an entry of	the following format:

	   keyword value..

       IDN  encoding entry specifies the encoding name (codeset	name) which is
       used as the encoding of internationalized domain	names.

       The syntax of this entry	is:

	   idn-encoding	encoding

       encoding	is the encoding	name to	be used,  and  any  of	the  following
       names can be specified.

	 o ``Punycode''

	 o ``UTF-8''

	 o Codeset  names which	iconv_open() library function accepts.	Please
	   consult iconv() documentation for the available codesets.

	 o Any alias names for the above, defined by  the  alias  file.	  (See
	   section ``ENCODING-ALIAS-FILE'')

       The standard encoding was determined as Punycode.

       Nameprep	entry specifies	the version of NAMEPREP, which is a specifica-
       tion of ``canonicalization'' process of internationalized  domain  name
       before it is converted to the IDN encoding.

       The syntax of this entry	is:

	   nameprep version

       version	is  the	 version name of NAMEPREP specification, and currently
       the following versions can be specified.

	 o ``RFC3491''
	   This	version	refers to RFC3491 ``rfc-3491.txt''.

       The NAMEPREP process consists of	the following 4	subprocesses.

       1. mapping, which maps certain characters in a name  to	other  charac-
	  ters,	possibly none.

       2. normalization,  which	 replaces  character  variants	in a name to a
	  unique one.

       3. prohibited character checking, which detects invalid characters in a

       4. unassigned  codepoint	 checking,  which also invalid codepoints in a

       5. bidirectional	string checking, which detecs invalid string.

       This entry specifies localized  mapping	phase  before  NAMEPREP	 takes
       place.	Different  mapping  rules  can be specified for	each TLD (top-
       level domain).  For example, you	can have one mapping for  ``.tw''  do-
       main, and another for ``.jp'' domain.

       The syntax of this entry	is:

	   local-map tld scheme	[scheme..]

       tld  specifies  the TLD to which	the mapping rule is to be applied, and
       scheme specifies	the mapping scheme, and	 currently  available  schemes

	     Specify mapping defined by	RFC3491.

	     Specify mapping defined by	the file pathname.  See	``MAPFILE FOR-
	     MAT'' for the format of this file.

       There are two special tlds for specifying the mapping  rule  for	 local
       domain  names  (domain names without any	dots in	them), and the default
       mapping rule.  If tld is	``-'', it matches domain names	which  do  not
       contain	any  dots.  If tld is ``.'', it	matches	any domain names which
       don't match to any other	mapping	rules specified	by  ``local-map''  en-

       A  mapfile defines a set	of character mapping rules.  It	can define un-
       conditional one-character to N-character-sequence (N can	 be  0,	 1  or
       more) mappings.

       A  mapfile is a simple text file, and each line specifies a single map-
       ping.  Each line	is of the form:

	   src-codepoint; mapped-codepoint-seq;

       src-codepoint indicates source character	of the mapping,	and must be  a
       Unicode codepoint value in hexadecimal string.  mapped-codepoint-seq is
       a sequence of characters	which is the outcome of	the mapping, and  must
       be  a  (possibly	empty) list of Unicode codepoint values	in hexadecimal
       string, separated by spaces.

       Lines which begin with ``#'' are	treated	as comments and	ignored.

       A sample	mapfile	is shown below.

	   # map "A" to	"a"
	   0041; 0061;
	   # map "#" to	nothing
	   0023; ;
	   # map "@" to	"at"
	   0040; 0061 0074;

       idn.conf	or ~/.idnrc doesn't have an entry to specify the  local	 code-
       set,  since  it is determined from the application's current locale in-
       formation.  So each application can use different local codeset.

       Although	idnkit tries hard to find out the local	codeset, sometimes  it
       fails.  For example, there are applications which use non-ASCII codeset
       but work	in C locale.  In this case, you	can specify the	 application's
       local  codeset  by an environment variable ``IDN_LOCAL_CODESET''.  Just
       set the codeset name (or	its alias name)	to the	variable,  and	idnkit
       will  use  the  codeset as the local one, regardless of the locale set-

       Encoding	alias file specifies codeset name aliases.  It is  located  on
       /usr/local/etc/idnalias.conf   and   always   loaded  automatically  as
       idn.conf	and .idnrc.  The aliases in this file can be used just as  the
       real names.

       The alias file is a simple text file, consisting	of lines of the	form:

	   alias-name name

       alias-name  is  the alias name to be defined, and name is the real name
       or another alias	name.

       The following shows a sample configuration file.

	   # a sample configuration.

	   # Use Punycode as the IDN encoding.
	   idn-encoding	Punycode

	   # Use RFC3491 as NAMEPREP.
	   nameprep RFC3491

	   # Perform Japanese-specific mapping for .jp domain.
	   # assuming /usr/local/lib/idnkit/jp-map contains the	mapping.
	   local-map .jp filemap:/usr/local/lib/idnkit/jp-map

       /usr/local/etc/idn.conf.sample -	sample configuration with comments
       /usr/local/etc/idnalias.conf.sample - sample alias file


				  Mar 8, 2002			   idn.conf(5)


Want to link to this manual page? Use this URL:

home | help