Converts files from native encodings to ASCII with escaped Unicode. A common usage is to convert source files maintained in a native operating system encoding, to ASCII prior to compilation.
Files in the directory src
are converted from a native encoding to ASCII.
By default, all files in the directory are converted.
However, conversion may be limited to selected files using
includes and excludes attributes.
For more information on file matching patterns,
see the section on
directory based tasks.
If no encoding is specified,
the default encoding for the JVM is used.
If ext is specified, then output files are renamed
to use it as a new extension.
More sophisticated file name translations can be achieved using a nested
<mapper>
element. By default an
identity mapper will be used.
If dest and src point to the same directory,
the ext attribute or a nested <mapper>
is required.
This task forms an implicit File Set,
and supports most attributes of <fileset>
(dir
becomes src
) as well as
nested <include>
, <exclude>
,
and <patternset>
elements.
It is possible to use different converters. This can be selected
with the implementation
attribute or a nested element.
Here are the choices of the attribute:
Attribute | Description | Required |
reverse | Reverse the sense of the conversion, i.e. convert from ASCII to native only supported by the sun converter | No |
encoding | The native encoding the files are in (default is the default encoding for the JVM) | No |
src | The directory to find files in (default is basedir) | No |
dest | The directory to output file to | Yes |
ext | File extension to use in renaming output files | No |
defaultexcludes | indicates whether default excludes should be used or not ("yes"/"no"). Default excludes are used when omitted. | No |
includes | comma- or space-separated list of patterns of files that must be included. All files are included when omitted. | No |
includesfile | the name of a file. Each line of this file is taken to be an include pattern | No |
excludes | comma- or space-separated list of patterns of files that must be excluded. No files (except default excludes) are excluded when omitted. | No |
excludesfile | the name of a file. Each line of this file is taken to be an exclude pattern | No |
implementation | The converter implementation to use. If this attribute is not set, the default converter for the current VM will be used. (See the above list of valid converters.) | No |
You can specify additional command line arguments for the converter
with nested <arg>
elements. These elements are
specified like Command-line Arguments
but have an additional attribute that can be used to enable arguments
only if a given converter implementation will be used.
Attribute | Description | Required |
value | See Command-line Arguments. | Exactly one of these. |
line | ||
file | ||
path | ||
implementation | Only pass the specified argument if the chosen converter implementation matches the value of this attribute. Legal values are the same as those in the above list of valid compilers.) | No |
A PATH like structure holding the classpath to use when loading the converter implementation if a custom class has been specified. Doesn't have any effect when using one of the built-in converters.
If a defined type implements the Native2AsciiAdapter
interface a nested element of that type can be used as an
alternative to the implementation
attribute.
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"/>
Converts all files in the directory srcdir
ending in .eucjis
from the EUCJIS encoding to ASCII
and renames them to end in .java
.
<native2ascii encoding="EUCJIS" src="native/japanese" dest="src" includes="**/*.java"/>
Converts all the files ending in .java
in the directory native/japanese to ASCII,
placing the results in the directory src.
The names of the files remain the same.
If you want to use a custom
Native2AsciiAdapter org.example.MyAdapter
you can either
use the implementation attribute:
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java" implementation="org.example.MyAdapter"/>
or a define a type and nest this into the task like in:
<componentdef classname="org.example.MyAdapter" name="myadapter"/> <native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"> <myadapter/> </native2ascii>
in which case your native2ascii adapter can support attributes and nested elements of its own.