(libidn.info.gz) Java API

Info Catalog (libidn.info.gz) Emacs API (libidn.info.gz) Top (libidn.info.gz) C# API
 
 12 Java API
 ***********
 
 Libidn has been ported to the Java programming language, and as a
 consequence most of the API is available to native Java applications.
 This section contain notes on this support, complete documentation is
 pending.
 
    The Java library, if Libidn has been built with Java support (
 Downloading and Installing), will be placed in
 `java/libidn-1.28.jar'.  The source code is below `java/' in Maven
 directory layout, and there is a Maven `pom.xml' build script as well.
 Source code files are in `java/src/main/java/gnu/inet/encoding/'.
 
 12.1 Overview
 =============
 
 This package provides a Java implementation of the Internationalized
 Domain Names in Applications (IDNA) standard. It is written entirely in
 Java and does not require any additional libraries to be set up.
 
    The gnu.inet.encoding.IDNA class offers two public functions, toASCII
 and toUnicode which can be used as follows:
 
      gnu.inet.encoding.IDNA.toASCII("blöds.züg");
      gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka");
 
 12.2 Miscellaneous Programs
 ===========================
 
 The `java/src/util/java/' directory contains several programs that are
 related to the Java part of GNU Libidn, but that don't need to be
 included in the main source tree or the JAR file.
 
 12.2.1 GenerateRFC3454
 ----------------------
 
 This program parses RFC3454 and creates the RFC3454.java program that
 is required during the StringPrep phase.
 
    The RFC can be found at various locations, for example at
 `http://www.ietf.org/rfc/rfc3454.txt'.
 
    Invoke the program as follows:
 
      $ java GenerateRFC3454
      Creating RFC3454.java... Ok.
 
 12.2.2 GenerateNFKC
 -------------------
 
 The GenerateNFKC program parses the Unicode character database file and
 generates all the tables required for NFKC. This program requires the
 two files UnicodeData.txt and CompositionExclusions.txt of version 3.2
 of the Unicode files. Note that RFC3454 (Stringprep) defines that
 Unicode version 3.2 is to be used, not the latest version.
 
    The Unicode data files can be found at
 `http://www.unicode.org/Public/'.
 
    Invoke the program as follows:
 
      $ java GenerateNFKC
      Creating CombiningClass.java... Ok.
      Creating DecompositionKeys.java... Ok.
      Creating DecompositionMappings.java... Ok.
      Creating Composition.java... Ok.
 
 12.2.3 TestIDNA
 ---------------
 
 The TestIDNA program allows to test the IDNA implementation manually or
 against Simon Josefsson's test vectors.
 
    The test vectors can be found at the Libidn homepage,
 `http://www.gnu.org/software/libidn/'.
 
    To test the transformation manually, use:
 
      $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a <string to test>
      Input: <string to test>
      Output: <toASCII(string to test)>
      $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u <string to test>
      Input: <string to test>
      Output: <toUnicode(string to test)>
 
    To test against draft-josefsson-idn-test-vectors.html, use:
 
      $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t
      No errors detected!
 
 12.2.4 TestNFKC
 ---------------
 
 The TestNFKC program allows to test the NFKC implementation manually or
 against the NormalizationTest.txt file from the Unicode data files.
 
    To test the normalization manually, use:
 
      $ java -cp .:/usr/share/java/libidn.jar TestNFKC <string to test>
      Input: <string to test>
      Output: <nfkc version of the string to test>
 
    To test against NormalizationTest.txt:
 
      $ java -cp .:/usr/share/java/libidn.jar TestNFKC
      No errors detected!
 
 12.3 Possible Problems
 ======================
 
 Beware of Bugs: This Java API needs a lot more testing, especially with
 "exotic" character sets. While it works for me, it may not work for you.
 
    Encoding of your Java sources: If you are using non-ASCII characters
 in your Java source code, make sure javac compiles your programs with
 the correct encoding. If necessary specify the encoding using the
 -encoding parameter.
 
    Java Unicode handling: Java 1.4 only handles 16-bit Unicode code
 points (i.e. characters in the Basic Multilingual Plane), this
 implementation therefore ignores all references to so-called
 Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5,
 these characters will also be supported by Java, but this will require
 changes to this library.  See also the next section.
 
 12.4 A Note on Java and Unicode
 ===============================
 
 This library uses Java's built-in 'char' datatype. Up to Java 1.4, this
 datatype only supports 16-bit Unicode code points, also called the
 Basic Multilingual Plane. For this reason, this library doesn't work
 for Supplementary Characters (i.e. characters from U+10000 to
 U+10FFFF). All references to such characters are silently ignored.
 
    Starting from Java 1.5, also Supplementary Characters will be
 supported. However, this will require changes in the present version of
 the library. Java 1.5 is currently in beta status.
 
    For more information refer to the documentation of
 java.lang.Character in the JDK API.
 
Info Catalog (libidn.info.gz) Emacs API (libidn.info.gz) Top (libidn.info.gz) C# API
automatically generated by info2html