1 | package Encode::JP;
|
---|
2 | BEGIN {
|
---|
3 | if (ord("A") == 193) {
|
---|
4 | die "Encode::JP not supported on EBCDIC\n";
|
---|
5 | }
|
---|
6 | }
|
---|
7 | use Encode;
|
---|
8 | our $VERSION = do { my @r = (q$Revision: 2.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
|
---|
9 |
|
---|
10 | use XSLoader;
|
---|
11 | XSLoader::load(__PACKAGE__,$VERSION);
|
---|
12 |
|
---|
13 | use Encode::JP::JIS7;
|
---|
14 |
|
---|
15 | 1;
|
---|
16 | __END__
|
---|
17 |
|
---|
18 | =head1 NAME
|
---|
19 |
|
---|
20 | Encode::JP - Japanese Encodings
|
---|
21 |
|
---|
22 | =head1 SYNOPSIS
|
---|
23 |
|
---|
24 | use Encode qw/encode decode/;
|
---|
25 | $euc_jp = encode("euc-jp", $utf8); # loads Encode::JP implicitly
|
---|
26 | $utf8 = decode("euc-jp", $euc_jp); # ditto
|
---|
27 |
|
---|
28 | =head1 ABSTRACT
|
---|
29 |
|
---|
30 | This module implements Japanese charset encodings. Encodings
|
---|
31 | supported are as follows.
|
---|
32 |
|
---|
33 | Canonical Alias Description
|
---|
34 | --------------------------------------------------------------------
|
---|
35 | euc-jp /\beuc.*jp$/i EUC (Extended Unix Character)
|
---|
36 | /\bjp.*euc/i
|
---|
37 | /\bujis$/i
|
---|
38 | shiftjis /\bshift.*jis$/i Shift JIS (aka MS Kanji)
|
---|
39 | /\bsjis$/i
|
---|
40 | 7bit-jis /\bjis$/i 7bit JIS
|
---|
41 | iso-2022-jp ISO-2022-JP [RFC1468]
|
---|
42 | = 7bit JIS with all Halfwidth Kana
|
---|
43 | converted to Fullwidth
|
---|
44 | iso-2022-jp-1 ISO-2022-JP-1 [RFC2237]
|
---|
45 | = ISO-2022-JP with JIS X 0212-1990
|
---|
46 | support. See below
|
---|
47 | MacJapanese Shift JIS + Apple vendor mappings
|
---|
48 | cp932 /\bwindows-31j$/i Code Page 932
|
---|
49 | = Shift JIS + MS/IBM vendor mappings
|
---|
50 | jis0201-raw JIS0201, raw format
|
---|
51 | jis0208-raw JIS0201, raw format
|
---|
52 | jis0212-raw JIS0201, raw format
|
---|
53 | --------------------------------------------------------------------
|
---|
54 |
|
---|
55 | =head1 DESCRIPTION
|
---|
56 |
|
---|
57 | To find out how to use this module in detail, see L<Encode>.
|
---|
58 |
|
---|
59 | =head1 Note on ISO-2022-JP(-1)?
|
---|
60 |
|
---|
61 | ISO-2022-JP-1 (RFC2237) is a superset of ISO-2022-JP (RFC1468) which
|
---|
62 | adds support for JIS X 0212-1990. That means you can use the same
|
---|
63 | code to decode to utf8 but not vice versa.
|
---|
64 |
|
---|
65 | $utf8 = decode('iso-2022-jp-1', $stream);
|
---|
66 |
|
---|
67 | and
|
---|
68 |
|
---|
69 | $utf8 = decode('iso-2022-jp', $stream);
|
---|
70 |
|
---|
71 | yield the same result but
|
---|
72 |
|
---|
73 | $with_0212 = encode('iso-2022-jp-1', $utf8);
|
---|
74 |
|
---|
75 | is now different from
|
---|
76 |
|
---|
77 | $without_0212 = encode('iso-2022-jp', $utf8 );
|
---|
78 |
|
---|
79 | In the latter case, characters that map to 0212 are first converted
|
---|
80 | to U+3013 (0xA2AE in EUC-JP; a white square also known as 'Tofu' or
|
---|
81 | 'geta mark') then fed to the decoding engine. U+FFFD is not used,
|
---|
82 | in order to preserve text layout as much as possible.
|
---|
83 |
|
---|
84 | =head1 BUGS
|
---|
85 |
|
---|
86 | The ASCII region (0x00-0x7f) is preserved for all encodings, even
|
---|
87 | though this conflicts with mappings by the Unicode Consortium. See
|
---|
88 |
|
---|
89 | L<http://www.debian.or.jp/~kubota/unicode-symbols.html.en>
|
---|
90 |
|
---|
91 | to find out why it is implemented that way.
|
---|
92 |
|
---|
93 | =head1 SEE ALSO
|
---|
94 |
|
---|
95 | L<Encode>
|
---|
96 |
|
---|
97 | =cut
|
---|