Encode::JP(3pm)

πŸ“¦
version 5.42.3 Β· 4 versions
, in alpine 3.24

πŸ’– NAME πŸ’–

Encode::JP β€” Japanese Encodings. Yup, bestie, this is the Encode::JP(3pm) page from the Perl Programmers Reference Guide, and we're gonna get into it πŸ’…βœ¨

✨ SYNOPSIS ✨

use Encode qw/encode decode/;
$euc_jp = encode("euc-jp", $utf8);   # loads Encode::JP implicitly
$utf8   = decode("euc-jp", $euc_jp); # ditto

No cap, that's the whole vibe check.

🌸 ABSTRACT 🌸

This module implements Japanese charset encodings. Encodings supported are as follows. Canonical names first, then aliases, then the description β€” iykyk:

  • euc-jp β€” aliases: /\beuc.*jp$/i, /\bjp.*euc/i, /\bujis$/i. Description: EUC (Extended Unix Character)
  • shiftjis β€” aliases: /\bshift.*jis$/i, /\bsjis$/i. Description: Shift JIS (aka MS Kanji)
  • 7bit-jis β€” alias: /\bjis$/i. Description: 7bit JIS
  • iso-2022-jp β€” Description: ISO-2022-JP [RFC1468] = 7bit JIS with all Halfwidth Kana converted to Fullwidth
  • iso-2022-jp-1 β€” Description: ISO-2022-JP-1 [RFC2237] = ISO-2022-JP with JIS X 0212-1990 support. See below
  • MacJapanese β€” Description: Shift JIS + Apple vendor mappings
  • cp932 β€” alias: /\bwindows-31j$/i. Description: Code Page 932 = Shift JIS + MS/IBM vendor mappings
  • jis0201-raw β€” Description: JIS0201, raw format
  • jis0208-raw β€” Description: JIS0208, raw format
  • jis0212-raw β€” Description: JIS0212, raw format

That's the lineup, and every one of them is iconic in its own way πŸŽ€

πŸŽ€ DESCRIPTION πŸŽ€

To find out how to use this module in detail, see Encode. That's the main character you wanna follow for the full tutorial vibe πŸ”₯

πŸ¦‹ Note on ISO-2022-JP(-1)? πŸ¦‹

Okay so ISO-2022-JP-1 (RFC2237) is a superset of ISO-2022-JP (RFC1468) which adds support for JIS X 0212-1990. That means you can use the same code to decode to utf8 but not vice versa. Fr fr.

$utf8 = decode('iso-2022-jp-1', $stream);

and

$utf8 = decode('iso-2022-jp',   $stream);

yield the same result but

$with_0212 = encode('iso-2022-jp-1', $utf8);

is now different from

$without_0212 = encode('iso-2022-jp', $utf8 );

In the latter case, characters that map to 0212 are first converted to U+3013 (0xA2AE in EUC-JP; a white square also known as 'Tofu' or 'geta mark') then fed to the decoding engine. U+FFFD is not used, in order to preserve text layout as much as possible. It's giving "protect the layout at all costs" 🫢

πŸ’€ BUGS πŸ’€

Heads up, bestie: the ASCII region (0x00-0x7f) is preserved for all encodings, even though this conflicts with mappings by the Unicode Consortium. Not me making the rules β€” that's just what it says 😭

πŸ”₯ SEE ALSO πŸ”₯

  • Encode

And that's the whole page, mwah πŸ’‹ This little icon came from perl v5.42.3, dated 2026-11-03, and it's Encode::JP(3pm) β€” periodt. πŸ¦‹

πŸ“¦ where this page comes from