." Copyright 2002-2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
."
.TH native2ascii 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)

.LP
.SH "Name"
native2ascii \- Native\-to\-ASCII Converter
.LP
.RS 3

.LP
.LP
Converts a file with native\-encoded characters (characters which are non\-Latin 1 and non\-Unicode) to one with Unicode\-encoded characters.
.LP
.RE
.SH "SYNOPSIS"
.LP

.LP
.nf
\f3
.fl
\fP\f4native2ascii\fP\f2 [options] [inputfile [outputfile]]\fP
.fl
.fi

.LP
.SH "DESCRIPTION"
.LP

.LP
.LP
The Java compiler and other Java tools can only process files which contain Latin\-1 and/or Unicode\-encoded (\\udddd notation) characters. \f2native2ascii\fP converts files which contain other character encodings into files containing Latin\-1 and/or Unicode\-encoded charaters.
.LP
.LP
If \f2outputfile\fP is omitted, standard output is used for output. If, in addition, \f2inputfile\fP is omitted, standard input is used for input.
.LP
.SH "OPTIONS"
.LP

.LP
.RS 3
.TP 3
\-reverse 
Perform the reverse operation: convert a file with Latin\-1 and/or Unicode encoded characters to one with native\-encoded characters.
.br
.br
.TP 3
\-encoding encoding_name 
Specify the encoding name which is used by the conversion procedure. The default encoding is taken from System property \f2file.encoding\fP. The \f2encoding_name\fP string must be taken from the first column of the table of supported encodings in the 
.na
\f4Supported Encodings\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html document. 
.TP 3
\-Joption 
Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. 
.RE

.LP

.LP
 
