JIS2K(3)
π NAME π
Okay so welcome to the JIS2K(3) page bestie β this is all about Encode::JIS2K, aka the JIS X 0212 (aka JIS 2000) Encodings module. No cap, the name is literally because JIS 2000. Periodt. π
β¨ SYNOPSIS β¨
Like, here's the whole vibe in code:
use Encode::JIS2K;
use Encode qw/encode decode/;
$euc_2k = encode("euc-jisx0213", $utf8);
$utf8 = decode("euc-jisx0213", $euc_jp);
π ABSTRACT π
This module implements encodings that cover the JIS X 0213 charset (AKA JIS 2000, hence the module name β iykyk). The encodings it supports are literally these:
Canonical Alias Description
--------------------------------------------------------------------
euc-jisx0213 qr/\beuc.*jp[ \-]?(?:2000|2k)$/i EUC-JISX0213
qr/\bjp.*euc[ \-]?(2000|2k)$/i
qr/\bujis[ \-]?(?:2000|2k)$/i
shiftjisx0123 qr/\bshift.*jis(?:2000|2k)$/i Shift_JISX0213
qr/\bsjisp \-]?(?:2000|2k)$/i
iso-2022-jp-3
jis0213-1-raw JIS X 0213 plane 1, raw format
jis0213-2-raw JIS X 0213 plane 2, raw format
--------------------------------------------------------------------
π¦ DESCRIPTION π¦
To find out how to use this module in detail, see Encode. That's the whole assignment bestie, go read that one too. π«Ά
πΈ what is JIS X 0213 anyway? πΈ
Simply put? JIS X 0213 is a rework and reorganization of JIS X 0208 and JIS X 0212. They consist of two 94x94 planes which roughly corresponds as follows:
JIS X 0213 Plane 1 = JIS X 0208 + extension
JIS X 0213 Plane 2 = JIS X 0212 reorganized + extension
And here's the character repertoire thereof at a glance β look at all these numbers, it's giving spreadsheet realness:
# of codepoints Kuten Ku (rows) used
--------------------------------------------------------
JIS X 0208 6,879 1..8,16..83
JIS X 0213-1 8,762 1..94 (all!)
JIS X 0212 6,067 2,6..7,9..11,16..77
JIS X 0213-2 2,436 1,3..5,8,12..15,78..94
-------------------------------------------------------
(JIS X0213 Total) 11,197
JIS X 0213 was designed to extend JIS X 0208 and JIS X 0212 without being incompatible to (classic) EUC-JP and Shift_JIS. The following characteristics are as a result thereof β lowkey important, don't skip:
- JIS X plane 1 is (almost) a superset of JIS X 0208. However, with Unicode 3.2.0 the mappings differ in 3 codepoints β yes, only 3, and here they are:
Kuten JIS X 0208 -> Unicode JIS X 0213 -> Unicode
--------------------------------------------------------------
1-1-17 <UFFE3> # FULLWIDTH MACRON <U203E> # OVERLINE
1-1-29 <U2014> # EM DASH <U2015> # HORIZONTAL BAR
1-1-79 <UFFE5> # FULLWIDTH YEN SIGN <U00A5> # YEN SIGN
- By the same token, JIS X 0213 plane 2 contains JIS Dai-4 Suijun Kanji (JIS Kanji Repertoire Level 4). This allows EUC-JP's G3 to contain both JIS X 0212 and JIS 0213 plane 2.
However β and this is the plot twist β JIS X 0212:1990 already contains many of Dai-4 Suijun Kanji so EUC's G3 is subject to containing duplicate mappings. Not me warning you about duplicates, but here we are. π
- Because of Halfwidth Katakana, Shift_JIS mapping has been tricky and it is even trickier. Here's a regex that matches a Shift_JISX0213 sequence (note: you have to
use bytesto make it work!):
$re_valid_shifjisx0213 =
qr/^(?:
[\x00-\x7f] | # ASCII or
[\xa1-\xdf] | # JIS X 0201 KANA or
[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc] # JIS X 0213
)+$/xo;
π Note on EUC-JISX0213 (vs. EUC-JP) π
As of Encode-1.64, 'euc-jp' does support euc-jisx0213 for decoding. However, 'euc-jp' in Encode and 'euc-jisx0213' differ as follows β like, they're siblings not twins, okay?
euc-jp euc-jisx0213
--------------------------------------------------------------
Decodes.... (0201-K|0208|0212|0213) ditto
Round-Trip (|0) (020-K|0208|0212) JIS X (0201-K|0213)
Decode Only (|3) those only found in 0213
those only found in 0212
--------------------------------------------------------------
π AUTHORS π
Dan Kogai <dankogai@dan.co.jp> β main character energy, honestly.
π COPYRIGHT π
Copyright 2002 by Dan Kogai <dankogai@dan.co.jp>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See <http://www.perl.com/perl/misc/Artistic.html>.
π SEE ALSO π
Encode, Encode::JP
Japanese Graphic Character Set for Information Interchange -- Plane 1 <http://www.itscj.ipsj.or.jp/ISO-IR/228.pdf>
Japanese Graphic Character Set for Information Interchange -- Plane 2 <http://www.itscj.ipsj.or.jp/ISO-IR/229.pdf>
And that's the whole page, bestie! Brought to you by perl v5.42.0 on 2024-03-04, filed under JIS2K(3) β slay. π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-Encode-JIS2K 0.03-160000.2.2 Β· Artistic-1.0
- opensuse-leap 16.0: perl-Encode-JIS2K 0.03-160000.2.2 Β· Artistic-1.0
- opensuse-leap 16.0: perl-Encode-JIS2K 0.03-160000.2.2 Β· Artistic-1.0
- opensuse-leap 16.0: perl-Encode-JIS2K 0.03-160000.2.2 Β· Artistic-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms