Blame NKF.mod/NKF.pm

Packit Service 949123
# Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA).
Packit Service 949123
# Copyright (c) 1996-2015, The nkf Project.
Packit Service 949123
# All rights reserved.
Packit Service 949123
#
Packit Service 949123
# This software is provided 'as-is', without any express or implied
Packit Service 949123
# warranty. In no event will the authors be held liable for any damages
Packit Service 949123
# arising from the use of this software.
Packit Service 949123
#
Packit Service 949123
# Permission is granted to anyone to use this software for any purpose,
Packit Service 949123
# including commercial applications, and to alter it and redistribute it
Packit Service 949123
# freely, subject to the following restrictions:
Packit Service 949123
#
Packit Service 949123
# 1. The origin of this software must not be misrepresented; you must not
Packit Service 949123
# claim that you wrote the original software. If you use this software
Packit Service 949123
# in a product, an acknowledgment in the product documentation would be
Packit Service 949123
# appreciated but is not required.
Packit Service 949123
#
Packit Service 949123
# 2. Altered source versions must be plainly marked as such, and must not be
Packit Service 949123
# misrepresented as being the original software.
Packit Service 949123
#
Packit Service 949123
# 3. This notice may not be removed or altered from any source distribution.
Packit Service 949123
Packit Service 949123
package NKF;
Packit Service 949123
Packit Service 949123
use strict;
Packit Service 949123
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
Packit Service 949123
Packit Service 949123
require Exporter;
Packit Service 949123
require DynaLoader;
Packit Service 949123
Packit Service 949123
@ISA = qw(Exporter DynaLoader);
Packit Service 949123
# Items to export into callers namespace by default. Note: do not export
Packit Service 949123
# names by default without a very good reason. Use EXPORT_OK instead.
Packit Service 949123
# Do not simply export all your public functions/methods/constants.
Packit Service 949123
@EXPORT = qw(
Packit Service 949123
	nkf	nkf_continue	inputcode
Packit Service 949123
);
Packit Service 949123
$VERSION = '2.14';
Packit Service 949123
Packit Service 949123
bootstrap NKF $VERSION;
Packit Service 949123
Packit Service 949123
# Preloaded methods go here.
Packit Service 949123
Packit Service 949123
# Autoload methods go after =cut, and are processed by the autosplit program.
Packit Service 949123
Packit Service 949123
1;
Packit Service 949123
__END__
Packit Service 949123
Packit Service 949123
#
Packit Service 949123
# =begin から =begin COMMAND までは Perl/NKF のドキュメント
Packit Service 949123
# =begin COMMAND から =end までは nkf コマンドのドキュメント
Packit Service 949123
# 
Packit Service 949123
Packit Service 949123
=head1 NAME
Packit Service 949123
Packit Service 949123
=begin
Packit Service 949123
Packit Service 949123
NKF - Perl extension for Network Kanji Filter
Packit Service 949123
Packit Service 949123
=begin COMMAND
Packit Service 949123
Packit Service 949123
nkf - Network Kanji Filter
Packit Service 949123
Packit Service 949123
=end
Packit Service 949123
Packit Service 949123
=head1 SYNOPSIS
Packit Service 949123
Packit Service 949123
=begin
Packit Service 949123
Packit Service 949123
  use NKF;
Packit Service 949123
  $output = nkf("-s",$input);
Packit Service 949123
Packit Service 949123
=begin COMMAND
Packit Service 949123
Packit Service 949123
nkf B<[-butjnesliohrTVvwWJESZxXFfmMBOcdILg]> B<[>I<file ...>B<]>
Packit Service 949123
Packit Service 949123
=end
Packit Service 949123
Packit Service 949123
=head1 DESCRIPTION
Packit Service 949123
Packit Service 949123
=begin
Packit Service 949123
Packit Service 949123
This is a Perl Extension version of nkf (Network Kanji Filter).
Packit Service 949123
It converts the last argument and return converted result. Conversion
Packit Service 949123
details are specified by flags before the last argument.
Packit Service 949123
Packit Service 949123
=end
Packit Service 949123
Packit Service 949123
B<Nkf> is a yet another kanji code converter among networks, hosts and terminals.
Packit Service 949123
It converts input kanji code to designated kanji code
Packit Service 949123
such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.
Packit Service 949123
Packit Service 949123
One of the most unique faculty of B<nkf> is the guess of the input kanji encodings.
Packit Service 949123
It currently recognizes ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 and UTF-32.
Packit Service 949123
So users needn't set the input kanji code explicitly.
Packit Service 949123
Packit Service 949123
By default, X0201 kana is converted into X0208 kana.
Packit Service 949123
For X0201 kana, SO/SI, SSO and ESC-(-I methods are supported.
Packit Service 949123
For automatic code detection, nkf assumes no X0201 kana in Shift_JIS.
Packit Service 949123
To accept X0201 in Shift_JIS, use B<-X>, B<-x> or B<-S>.
Packit Service 949123
Packit Service 949123
multiple options are specifed as seprate strings, such as
Packit Service 949123
Packit Service 949123
  print nkf('--ic=UTF8-MAC', '-w', $string), "\n";
Packit Service 949123
Packit Service 949123
except the last arguments.
Packit Service 949123
Packit Service 949123
=head1 OPTIONS
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-J -S -E -W -W16 -W32 -j -s -e -w -w16 -w32>
Packit Service 949123
Packit Service 949123
Specify input and output encodings. Upper case is input.
Packit Service 949123
cf. --ic and --oc.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-J>
Packit Service 949123
Packit Service 949123
ISO-2022-JP (JIS code).
Packit Service 949123
Packit Service 949123
=item B<-S>
Packit Service 949123
Packit Service 949123
Shift_JIS and JIS X 0201 kana.
Packit Service 949123
EUC-JP is recognized as X0201 kana. Without B<-x> flag,
Packit Service 949123
JIS X 0201 Katakana (a.k.a.halfwidth kana) is converted into JIS X 0208.
Packit Service 949123
If you use Windows, see Windows-31J (CP932).
Packit Service 949123
Packit Service 949123
=item B<-E>
Packit Service 949123
Packit Service 949123
EUC-JP.
Packit Service 949123
Packit Service 949123
=item B<-W>
Packit Service 949123
Packit Service 949123
UTF-8N.
Packit Service 949123
Packit Service 949123
=item B<-W16[BL][0]>
Packit Service 949123
Packit Service 949123
UTF-16.
Packit Service 949123
B or L gives whether Big Endian or Little Endian.
Packit Service 949123
0 gives whther put BOM or not.
Packit Service 949123
Packit Service 949123
=item B<-W32[BL][0]>
Packit Service 949123
Packit Service 949123
UTF-32.
Packit Service 949123
B or L gives whether Big Endian or Little Endian.
Packit Service 949123
0 gives whther put BOM or not.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-b -u>
Packit Service 949123
Packit Service 949123
Output is buffered (DEFAULT), Output is unbuffered.
Packit Service 949123
Packit Service 949123
=item B<-t>
Packit Service 949123
Packit Service 949123
No conversion.
Packit Service 949123
Packit Service 949123
=item B<-i[@B]>
Packit Service 949123
Packit Service 949123
Specify the escape sequence for JIS X 0208.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-i@>
Packit Service 949123
Packit Service 949123
Use ESC ( @. (JIS X 0208-1978)
Packit Service 949123
Packit Service 949123
=item B<-iB>
Packit Service 949123
Packit Service 949123
Use ESC ( B. (JIS X 0208-1983/1990 DEFAULT)
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-o[BJ]>
Packit Service 949123
Packit Service 949123
Specify the escape sequence for US-ASCII/JIS X 0201 Roman. (DEFAULT B)
Packit Service 949123
Packit Service 949123
=item B<-r>
Packit Service 949123
Packit Service 949123
{de/en}crypt ROT13/47
Packit Service 949123
Packit Service 949123
=item B<-h[123] --hiragana --katakana --katakana-hiragana>
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-h1 --hiragana>
Packit Service 949123
Packit Service 949123
Katakana to Hiragana conversion.
Packit Service 949123
Packit Service 949123
=item B<-h2 --katakana>
Packit Service 949123
Packit Service 949123
Hiragana to Katakana conversion.
Packit Service 949123
Packit Service 949123
=item B<-h3 --katakana-hiragana>
Packit Service 949123
Packit Service 949123
Katakana to Hiragana and Hiragana to Katakana conversion.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-T>
Packit Service 949123
Packit Service 949123
Text mode output (MS-DOS)
Packit Service 949123
Packit Service 949123
=item B<-f[I<m> [- I<n>]]>
Packit Service 949123
Packit Service 949123
Folding on I<m> length with I<n> margin in a line.
Packit Service 949123
Without this option, fold length is 60 and fold margin is 10.
Packit Service 949123
Packit Service 949123
=item B<-F>
Packit Service 949123
Packit Service 949123
New line preserving line folding.
Packit Service 949123
Packit Service 949123
=item B<-Z[0-3]>
Packit Service 949123
Packit Service 949123
Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-Z -Z0>
Packit Service 949123
Packit Service 949123
Convert X0208 alphabet to ASCII.
Packit Service 949123
Packit Service 949123
=item B<-Z1>
Packit Service 949123
Packit Service 949123
Convert X0208 kankaku to single ASCII space.
Packit Service 949123
Packit Service 949123
=item B<-Z2>
Packit Service 949123
Packit Service 949123
Convert X0208 kankaku to double ASCII spaces.
Packit Service 949123
Packit Service 949123
=item B<-Z3>
Packit Service 949123
Packit Service 949123
Replacing fullwidth >, <, ", & into '>', '<', '"', '&' as in HTML.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-X -x>
Packit Service 949123
Packit Service 949123
With B<-X> or without this option, X0201 is converted into X0208 Kana.
Packit Service 949123
With B<-x>, try to preserve X0208 kana and do not convert X0201 kana to X0208.
Packit Service 949123
In JIS output, ESC-(-I is used. In EUC output, SS2 is used.
Packit Service 949123
Packit Service 949123
=item B<-B[0-2]>
Packit Service 949123
Packit Service 949123
Assume broken JIS-Kanji input, which lost ESC.
Packit Service 949123
Useful when your site is using old B-News Nihongo patch.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-B1>
Packit Service 949123
Packit Service 949123
allows any chars after ESC-( or ESC-$.
Packit Service 949123
Packit Service 949123
=item B<-B2>
Packit Service 949123
Packit Service 949123
force ASCII after NL.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-I>
Packit Service 949123
Packit Service 949123
Replacing non iso-2022-jp char into a geta character
Packit Service 949123
(substitute character in Japanese).
Packit Service 949123
Packit Service 949123
=item B<-m[BQN0]>
Packit Service 949123
Packit Service 949123
MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT)
Packit Service 949123
To see ISO8859-1 (Latin-1) -l is necessary.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-mB>
Packit Service 949123
Packit Service 949123
Decode MIME base64 encoded stream. Remove header or other part before
Packit Service 949123
conversion. 
Packit Service 949123
Packit Service 949123
=item B<-mQ>
Packit Service 949123
Packit Service 949123
Decode MIME quoted stream. '_' in quoted stream is converted to space.
Packit Service 949123
Packit Service 949123
=item B<-mN>
Packit Service 949123
Packit Service 949123
Non-strict decoding.
Packit Service 949123
It allows line break in the middle of the base64 encoding.
Packit Service 949123
Packit Service 949123
=item B<-m0>
Packit Service 949123
Packit Service 949123
No MIME decode.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-M>
Packit Service 949123
Packit Service 949123
MIME encode. Header style. All ASCII code and control characters are intact.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-MB>
Packit Service 949123
Packit Service 949123
MIME encode Base64 stream.
Packit Service 949123
Kanji conversion is performed before encoding, so this cannot be used as a picture encoder.
Packit Service 949123
Packit Service 949123
=item B<-MQ>
Packit Service 949123
Packit Service 949123
Perform quoted encoding.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<-l>
Packit Service 949123
Packit Service 949123
Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP.
Packit Service 949123
B<-s>, B<-e> and B<-x> are not compatible with this option.
Packit Service 949123
Packit Service 949123
=item B<-L[uwm] -d -c>
Packit Service 949123
Packit Service 949123
Convert line breaks.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item B<-Lu -d>
Packit Service 949123
Packit Service 949123
unix (LF)
Packit Service 949123
Packit Service 949123
=item B<-Lw -c>
Packit Service 949123
Packit Service 949123
windows (CRLF)
Packit Service 949123
Packit Service 949123
=item B<-Lm>
Packit Service 949123
Packit Service 949123
mac (CR)
Packit Service 949123
Packit Service 949123
Without this option, nkf doesn't convert line breaks.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<--fj --unix --mac --msdos --windows>
Packit Service 949123
Packit Service 949123
Convert for these systems.
Packit Service 949123
Packit Service 949123
=item B<--jis --euc --sjis --mime --base64>
Packit Service 949123
Packit Service 949123
Convert to named code.
Packit Service 949123
Packit Service 949123
=item B<--jis-input --euc-input --sjis-input --mime-input --base64-input>
Packit Service 949123
Packit Service 949123
Assume input system
Packit Service 949123
Packit Service 949123
=item B<--ic=I<input codeset> --oc=I<output codeset>>
Packit Service 949123
Packit Service 949123
Set the input or output codeset.
Packit Service 949123
NKF supports following codesets and those codeset names are case insensitive.
Packit Service 949123
Packit Service 949123
=over
Packit Service 949123
Packit Service 949123
=item ISO-2022-JP
Packit Service 949123
Packit Service 949123
a.k.a. RFC1468, 7bit JIS, JUNET
Packit Service 949123
Packit Service 949123
=item EUC-JP (eucJP-nkf)
Packit Service 949123
Packit Service 949123
a.k.a. AT&T JIS, Japanese EUC, UJIS
Packit Service 949123
Packit Service 949123
=item eucJP-ascii
Packit Service 949123
Packit Service 949123
=item eucJP-ms
Packit Service 949123
Packit Service 949123
=item CP51932
Packit Service 949123
Packit Service 949123
Microsoft Version of EUC-JP.
Packit Service 949123
Packit Service 949123
=item Shift_JIS
Packit Service 949123
Packit Service 949123
a.k.a. SJIS, MS_Kanji
Packit Service 949123
Packit Service 949123
=item Windows-31J
Packit Service 949123
Packit Service 949123
a.k.a. CP932
Packit Service 949123
Packit Service 949123
=item UTF-8
Packit Service 949123
Packit Service 949123
same as UTF-8N
Packit Service 949123
Packit Service 949123
=item UTF-8N
Packit Service 949123
Packit Service 949123
UTF-8 without BOM
Packit Service 949123
Packit Service 949123
=item UTF-8-BOM
Packit Service 949123
Packit Service 949123
UTF-8 with BOM
Packit Service 949123
Packit Service 949123
=item UTF8-MAC (input only)
Packit Service 949123
Packit Service 949123
decomposed UTF-8
Packit Service 949123
Packit Service 949123
=item UTF-16
Packit Service 949123
Packit Service 949123
same as UTF-16BE
Packit Service 949123
Packit Service 949123
=item UTF-16BE
Packit Service 949123
Packit Service 949123
UTF-16 Big Endian without BOM
Packit Service 949123
Packit Service 949123
=item UTF-16BE-BOM
Packit Service 949123
Packit Service 949123
UTF-16 Big Endian with BOM
Packit Service 949123
Packit Service 949123
=item UTF-16LE
Packit Service 949123
Packit Service 949123
UTF-16 Little Endian without BOM
Packit Service 949123
Packit Service 949123
=item UTF-16LE-BOM
Packit Service 949123
Packit Service 949123
UTF-16 Little Endian with BOM
Packit Service 949123
Packit Service 949123
=item UTF-32
Packit Service 949123
Packit Service 949123
same as UTF-32BE
Packit Service 949123
Packit Service 949123
=item UTF-32BE
Packit Service 949123
Packit Service 949123
UTF-32 Big Endian without BOM
Packit Service 949123
Packit Service 949123
=item UTF-32BE-BOM
Packit Service 949123
Packit Service 949123
UTF-32 Big Endian with BOM
Packit Service 949123
Packit Service 949123
=item UTF-32LE
Packit Service 949123
Packit Service 949123
UTF-32 Little Endian without BOM
Packit Service 949123
Packit Service 949123
=item UTF-32LE-BOM
Packit Service 949123
Packit Service 949123
UTF-32 Little Endian with BOM
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=item B<--fb-{skip, html, xml, perl, java, subchar}>
Packit Service 949123
Packit Service 949123
Specify the way that nkf handles unassigned characters.
Packit Service 949123
Without this option, --fb-skip is assumed.
Packit Service 949123
Packit Service 949123
=item B<--prefix=I<escape character>I<target character>..>
Packit Service 949123
Packit Service 949123
When nkf converts to Shift_JIS,
Packit Service 949123
nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters.
Packit Service 949123
1st byte of argument is the escape character and following bytes are target characters.
Packit Service 949123
Packit Service 949123
=item B<--no-cp932ext>
Packit Service 949123
Packit Service 949123
Handle the characters extended in CP932 as unassigned characters.
Packit Service 949123
Packit Service 949123
=item B<--no-best-fit-chars>
Packit Service 949123
Packit Service 949123
When Unicode to Encoded byte conversion,
Packit Service 949123
don't convert characters which is not round trip safe.
Packit Service 949123
When Unicode to Unicode conversion,
Packit Service 949123
with this and -x option, nkf can be used as UTF converter.
Packit Service 949123
(In other words, without this and -x option, nkf doesn't save some characters)
Packit Service 949123
Packit Service 949123
When nkf converts strings that related to path, you should use this opion.
Packit Service 949123
Packit Service 949123
=item B<--cap-input>
Packit Service 949123
Packit Service 949123
Decode hex encoded characters.
Packit Service 949123
Packit Service 949123
=item B<--url-input>
Packit Service 949123
Packit Service 949123
Unescape percent escaped characters.
Packit Service 949123
Packit Service 949123
=item B<--numchar-input>
Packit Service 949123
Packit Service 949123
Decode character reference, such as "&#....;".
Packit Service 949123
Packit Service 949123
=begin COMMAND
Packit Service 949123
Packit Service 949123
=item B<--in-place[=>I<SUFFIX>B<]>  B<--overwrite[=>I<SUFFIX>B<]>
Packit Service 949123
Packit Service 949123
Overwrite B<original> listed files by filtered result.
Packit Service 949123
Packit Service 949123
B<Note> --overwrite preserves timestamps of original files.
Packit Service 949123
Packit Service 949123
=item B<--guess=[12]>
Packit Service 949123
Packit Service 949123
Print guessed encoding and newline. (2 is default, 1 is only encoding)
Packit Service 949123
Packit Service 949123
=item B<--help>
Packit Service 949123
Packit Service 949123
Print nkf's help.
Packit Service 949123
Packit Service 949123
=item B<--version>
Packit Service 949123
Packit Service 949123
Print nkf's version.
Packit Service 949123
Packit Service 949123
=end
Packit Service 949123
Packit Service 949123
=item B<-->
Packit Service 949123
Packit Service 949123
Ignore rest of -option.
Packit Service 949123
Packit Service 949123
=back
Packit Service 949123
Packit Service 949123
=head1 AUTHOR
Packit Service 949123
Packit Service 949123
Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA).
Packit Service 949123
Packit Service 949123
Copyright (c) 1996-2015, The nkf Project.
Packit Service 949123
Packit Service 949123
=begin
Packit Service 949123
Packit Service 949123
=head1 SEE ALSO
Packit Service 949123
Packit Service 949123
perl(1).   nkf(1)
Packit Service 949123
Packit Service 949123
=end
Packit Service 949123
Packit Service 949123
=cut