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

FreeBSD Manual Pages

  
 
  

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

NAME
     idn.conf, .idnrc, idnalias.conf - configuration files for idnkit library

SYNOPSIS
     /usr/local/etc/idn.conf
     ~/.idnrc
     /usr/local/etc/idnalias.conf

DESCRIPTION
     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/local/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 Unicode,
	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  se-
	quences,  according to a mapping rule determined by its top level domain
	(TLD).

     4. Perform NAMEPREP, which is a starndard name preparation process for  in-
	ternationalized  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 en-
	coding for internationalized domain names (also known as  ASCII-compati-
	ble encoding, ACE), and vice versa.

     The configuration file specifies the parameters for these tasks, such as:

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

       - NAMEPREP schemes.

SYNTAX
     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
     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.

       * ``Punycode''

       * ``UTF-8''

       * Codeset names which iconv_open() library function accepts.  Please con-
	 sult iconv() documentation for the available codesets.

       * 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
     Nameprep entry specifies the version of NAMEPREP, which is a  specification
     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.

       * ``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 characters,
	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
	name.

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

     5. bidirectional string checking, which detecs invalid string.

LOCAL-MAP ENTRY
     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'' domain, 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 are:

       RFC3491
	   Specify mapping defined by RFC3491.

       filemap:pathname
	   Specify mapping defined by the file pathname.  See ``MAPFILE FORMAT''
	   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'' entries.

MAPFILE FORMAT
     A mapfile defines a set of character mapping rules.  It can define uncondi-
     tional  one-character  to N-character-sequence (N can be 0, 1 or more) map-
     pings.

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

	 src-codepoint; mapped-codepoint-seq;

     src-codepoint indicates source character of the mapping, and must be a Uni-
     code  codepoint value in hexadecimal string.  mapped-codepoint-seq is a se-
     quence 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;

LOCAL CODESET
     idn.conf or ~/.idnrc doesn't have an entry to specify  the  local	codeset,
     since  it	is determined from the application's current locale information.
     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 setting.

ENCODING-ALIAS-FILE
     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.

SAMPLE CONFIGURATION
     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

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

SEE ALSO
     iconv(3)

				   Mar 8, 2002			     idn.conf(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=idnrc&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help