OSDN Git Service

a0680ff17ce293c3d42b5ac1efe4c3975ff31586
[nkf/nkf.git] / NKF.mod / NKF.pm
1 ## Copyright (C) 1996,1998
2 ## Copyright (C) 2002
3 ## Ï¢ÍíÀ衧 Î°µåÂç³Ø¾ðÊ󹩳زʠ²ÏÌî ¿¿¼£  mime/X0208 support
4 ## ¡ÊE-Mail Address: kono@ie.u-ryukyu.ac.jp¡Ë
5 ## Ï¢ÍíÀ衧 COW for DOS & Win16 & Win32 & OS/2
6 ## ¡ÊE-Mail Address: GHG00637@niftyserve.or.p¡Ë
7 ##    
8 ##    ¤³¤Î¥½¡¼¥¹¤Î¤¤¤«¤Ê¤ëÊ£¼Ì¡¤²þÊÑ¡¤½¤Àµ¤âµöÂú¤·¤Þ¤¹¡£¤¿¤À¤·¡¢
9 ##    ¤½¤ÎºÝ¤Ë¤Ï¡¢Ã¯¤¬¹×¸¥¤·¤¿¤ò¼¨¤¹¤³¤ÎÉôʬ¤ò»Ä¤¹¤³¤È¡£
10 ##    ºÆÇÛÉۤ仨»ï¤ÎÉÕÏ¿¤Ê¤É¤ÎÌ䤤¹ç¤ï¤»¤âɬÍפ¢¤ê¤Þ¤»¤ó¡£
11 ##    ±ÄÍøÍøÍѤâ¾åµ­¤ËÈ¿¤·¤Ê¤¤ÈϰϤǵö²Ä¤·¤Þ¤¹¡£
12 ##    ¥Ð¥¤¥Ê¥ê¤ÎÇÛÉۤκݤˤÏversion message¤òÊݸ¤¹¤ë¤³¤È¤ò¾ò·ï¤È¤·¤Þ¤¹¡£
13 ##    ¤³¤Î¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤ÏÆä˲¿¤ÎÊݾڤ⤷¤Ê¤¤¡¢°­¤·¤«¤é¤º¡£
14 ##    
15 ##    Everyone is permitted to do anything on this program
16 ##    including copying, modifying, improving, 
17 ##    as long as you don't try to pretend that you wrote it.
18 ##    i.e., the above copyright notice has to appear in all copies.  
19 ##    Binar y distribution requires original version messages.
20 ##    You don't have to ask before copying, redistribution or publishing.
21 ##    THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.
22
23
24 package NKF;
25
26 use strict;
27 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
28
29 require Exporter;
30 require DynaLoader;
31
32 @ISA = qw(Exporter DynaLoader);
33 # Items to export into callers namespace by default. Note: do not export
34 # names by default without a very good reason. Use EXPORT_OK instead.
35 # Do not simply export all your public functions/methods/constants.
36 @EXPORT = qw(
37         nkf     nkf_continue    inputcode
38 );
39 $VERSION = '2.05';
40
41 bootstrap NKF $VERSION;
42
43 # Preloaded methods go here.
44
45 # Autoload methods go after =cut, and are processed by the autosplit program.
46
47 1;
48 __END__
49 # Below is the stub of documentation for your module. You better edit it!
50
51 =head1 NAME
52
53 NKF - Perl extension for Network Kanji Filter 
54
55 =head1 SYNOPSIS
56
57   use NKF;
58   $output = nkf("-s",$input);
59
60 =head1 DESCRIPTION
61
62 This is a Perl Extension version of nkf (Netowrk Kanji Filter).
63 It converts the last argument and return converted result. Conversion
64 details are specified by flags before the last argument.
65
66
67 B<Nkf> is a yet another kanji code converter among networks, hosts and terminals.
68 It converts input kanji code to designated kanji code
69 such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8 or UTF-16.
70
71 One of the most unique faculty of B<nkf> is the guess of the input kanji encodings.
72 It currently recognizes ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8 and UTF-16.
73 So users needn't set the input kanji code explicitly.
74
75 By default, X0201 kana is converted into X0208 kana.
76 For X0201 kana, SO/SI, SSO and ESC-(-I methods are supported.
77 For automatic code detection, nkf assumes no X0201 kana in Shift_JIS.
78 To accept X0201 in Shift_JIS, use B<-X>, B<-x> or B<-S>.
79
80 =head1 Flags
81
82 =over
83
84 =item B<-b -u>
85
86 Output is buffered (DEFAULT), Output is unbuffered.
87
88 =item B<-j -s -e -w -w16>
89
90 Output code is ISO-2022-JP (7bit JIS), Shift_JIS, EUC-JP,
91 UTF-8N, UTF-16BE.
92 Without this option and compile option, ISO-2022-JP is assumed.
93
94 =item B<-J -S -E -W -W16>
95
96 Input assumption is JIS 7 bit, Shift_JIS, EUC-JP,
97 UTF-8, UTF-16LE.
98
99 =over
100
101 =item B<-J>
102
103 Assume  JIS input. It also accepts EUC-JP.
104 This is the default. This flag does not exclude Shift_JIS.
105
106 =item B<-S>
107
108 Assume Shift_JIS and X0201 kana input. It also accepts JIS.
109 EUC-JP is recognized as X0201 kana. Without B<-x> flag,
110 X0201 kana (halfwidth kana) is converted into X0208.
111
112 =item B<-E>
113
114 Assume EUC-JP input. It also accepts JIS.
115 Same as -J.
116
117 =back
118
119 =item B<-t>
120
121 No conversion.
122
123 =item B<-i_>
124
125 Output sequence to designate JIS-kanji. (DEFAULT B)
126
127 =item B<-o_>
128
129 Output sequence to designate ASCII. (DEFAULT B)
130
131 =item B<-r>
132
133 {de/en}crypt ROT13/47
134
135 =item B<-h[123] --hiragana --katakana --katakana-hiragana>
136
137 =over
138
139 =item B<-h1 --hiragana>
140
141 Katakana to Hiragana conversion.
142
143 =item B<-h2 --katakana>
144
145 Hiragana to Katakana conversion.
146
147 =item B<-h3 --katakana-hiragana>
148
149 Katakana to Hiragana and Hiragana to Katakana conversion.
150
151 =back
152
153 =item B<-T>
154
155 Text mode output (MS-DOS)
156
157 =item B<-l>
158
159 ISO8859-1 (Latin-1) support
160
161 =item B<-f[I<m> [- I<n>]]>
162
163 Folding on I<m> length with I<n> margin in a line.
164 Without this option, fold length is 60 and fold margin is 10.
165
166 =item B<-F>
167
168 New line preserving line folding.
169
170 =item B<-Z[0-3]>
171
172 Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.
173
174 =over
175
176 =item B<-Z -Z0>
177
178 Convert X0208 alphabet to ASCII.
179
180 =item B<-Z1>
181
182 Converts X0208 kankaku to single ASCII space.
183
184 =item B<-Z2>
185
186 Converts X0208 kankaku to double ASCII spaces.
187
188 =item B<-Z3>
189
190 Replacing Fullwidth >, <, ", & into '&gt;', '&lt;', '&quot;', '&amp;' as in HTML.
191
192 =back
193
194 =item B<-X -x>
195
196 Assume X0201 kana in MS-Kanji.
197 With B<-X> or without this option, X0201 is converted into X0208 Kana.
198 With B<-x>, try to preserve X0208 kana and do not convert X0201 kana to X0208.
199 In JIS output, ESC-(-I is used. In EUC output, SSO is used.
200
201 =item B<-B[0-2]>
202
203 Assume broken JIS-Kanji input, which lost ESC.
204 Useful when your site is using old B-News Nihongo patch.
205
206 =over
207
208 =item B<-B1>
209
210 allows any char after ESC-( or ESC-$.
211
212 =item B<-B2>
213
214 forces ASCII after NL.
215
216 =back
217
218 =item B<-I>
219
220 Replacing non iso-2022-jp char into a geta character
221 (substitute character in Japanese).
222
223 =item B<-d -c>
224
225 Delete \r in line feed, Add \r in line feed.
226
227 =item B<-m[BQN0]>
228
229 MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT)
230 To see ISO8859-1 (Latin-1) -l is necessary.
231
232 =over
233
234 =item B<-mB>
235
236 Decode MIME base64 encoded stream. Remove header or other part before
237 conversion. 
238
239 =item B<-mQ>
240
241 Decode MIME quoted stream. '_' in quoted stream is converted to space.
242
243 =item B<-mN>
244
245 Non-strict decoding.
246 It allows line break in the middle of the base64 encoding.
247
248 =item B<-m0>
249
250 No MIME decode.
251
252 =back
253
254 =item B<-M>
255
256 MIME encode. Header style. All ASCII code and control characters are intact.
257
258 =over
259
260 =item B<-MB>
261
262 MIME encode Base64 stream.
263 Kanji conversion is performed before encoding, so this cannot be used as a picture encoder.
264
265 =item B<-MQ>
266
267 Perfome quoted encoding.
268
269 =back
270
271 =item B<-l>
272
273 Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP.
274 B<-s>, B<-e> and B<-x> are not compatible with this option.
275
276 =item B<-L[uwm]>
277
278 new line mode
279
280 =over
281
282 =item B<-Lu>
283
284 unix (LF)
285
286 =item B<-Lw>
287
288 windows (CRLF)
289
290 =item B<-Lm>
291
292 mac (CR)
293
294 Without this option, nkf doesn't convert line breaks.
295
296 =back
297
298 =item B<--fj --unix --mac --msdos --windows>
299
300 convert for these system
301
302 =item B<--jis --euc --sjis --mime --base64>
303
304 convert for named code
305
306 =item B<--jis-input --euc-input --sjis-input --mime-input --base64-input>
307
308 assume input system
309
310 =item B<--ic=I<input codeset> --oc=I<output codeset>>
311
312 Set the input or output codeset.
313 NKF supports following codesets and those codeset name are case insensitive.
314
315 =over
316
317 =item ISO-2022-JP
318
319 a.k.a. RFC1468, 7bit JIS, JUNET
320
321 =item EUC-JP (eucJP-nkf)
322
323 a.k.a. AT&T JIS, Japanese EUC, UJIS
324
325 =item eucJP-ascii
326
327 =item eucJP-ms
328
329 =item CP51932
330
331 Microsoft Version of EUC-JP.
332
333 =item Shift_JIS
334
335 a.k.a. SJIS, MS-Kanji
336
337 =item CP932
338
339 a.k.a. Windows-31J
340
341 =item UTF-8
342
343 same as UTF-8N
344
345 =item UTF-8N
346
347 UTF-8 without BOM
348
349 =item UTF-8-BOM
350
351 UTF-8 with BOM
352
353 =item UTF-16
354
355 same as UTF-16BE
356
357 =item UTF-16BE
358
359 UTF-16 Big Endian without BOM
360
361 =item UTF-16BE-BOM
362
363 UTF-16 Big Endian with BOM
364
365 =item UTF-16LE
366
367 UTF-16 Little Endian without BOM
368
369 =item UTF-16LE-BOM
370
371 UTF-16 Little Endian with BOM
372
373 =item UTF8-MAC (input only)
374
375 =back
376
377 =item B<--fb-{skip, html, xml, perl, java, subchar}>
378
379 Specify the way that nkf handles unassigned characters.
380 Without this option, --fb-skip is assumed.
381
382 =item B<--prefix=I<escape character>I<target character>..>
383
384 When nkf converts to Shift_JIS,
385 nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters.
386 1st byte of argument is the escape character and following bytes are target characters.
387
388 =item B<--no-cp932ext>
389
390 Handle the characters extended in CP932 as unassigned characters.
391
392 =item B<--no-best-fit-chars>
393
394 When Unicode to Encoded byte conversion,
395 don't convert characters which is not round trip safe.
396 When Unicode to Unicode conversion,
397 with this and -x option, nkf can be used as UTF converter.
398 (In other words, without this and -x option, nkf doesn't save some characters)
399
400 When nkf convert string which related to path, you should use this opion.
401
402 =item B<--cap-input>
403
404 Decode hex encoded characters.
405
406 =item B<--url-input>
407
408 Unescape percent escaped characters.
409
410 =item B<--numchar-input>
411
412 Decode character reference, such as "&#....;".
413
414 =begin man
415
416 =item B<--overwrite>
417
418 Overwrite original file by converted result.
419
420 =item B<--guess>
421
422 Print guessed encoding.
423
424 =end man
425
426 =item B<-->
427
428 Ignore rest of -option.
429
430 =back
431
432 =head1 AUTHOR
433
434 Network Kanji Filter Version 2.0.5
435
436 Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW, 2002-2005 Kono, Furukawa, Naruse
437
438 =head1 SEE ALSO
439
440 perl(1).   nkf(1)
441
442 =cut