[1] Encode
は、文字コードの符号化と復号を行う
Perlモジュール (中核モジュール) です。
[8] Encode::HanExtra - Extra sets of Chinese encodings - metacpan.org, https://metacpan.org/pod/Encode::HanExtra
[5] Encode::IBM - IBM-specific encoding mappings - metacpan.org, https://metacpan.org/pod/Encode::IBM
[7] Encode::X11 - character encodings for X11 - metacpan.org, https://metacpan.org/pod/Encode::X11
[11] Encode::BOCU1 - encodes / decodes BOCU-1 string, works as part of Encode.pm - metacpan.org, https://metacpan.org/pod/Encode::BOCU1
[14] Encode::HP - Extra sets of HP encodings - metacpan.org, https://metacpan.org/pod/Encode::HP
[15] Encode::VN - Extra sets of Vietnamese encodings - metacpan.org, https://metacpan.org/pod/Encode::VN
[16] Encode::JIS2K - JIS X 0212 (aka JIS 2000) Encodings - metacpan.org, https://metacpan.org/pod/Encode::JIS2K
[26] Encode::JISX0213 - JIS X 0213 encodings - metacpan.org, https://metacpan.org/pod/Encode::JISX0213
[34] Encode::EUCJPASCII - eucJP-ascii - An eucJP-open mapping - metacpan.org, https://metacpan.org/pod/Encode::EUCJPASCII
[20] Encode::EUCJPMS - Microsoft Compatible Encodings for Japanese - metacpan.org, https://metacpan.org/pod/Encode::EUCJPMS
[21] Encode::ISO2022 - ISO/IEC 2022 character encoding scheme - metacpan.org, https://metacpan.org/pod/Encode::ISO2022
[17] Encode::RAD50 - Convert to and from the Rad50 character set. - metacpan.org, https://metacpan.org/pod/Encode::RAD50
[23] Encode-BetaCode/lib/Encode/BetaCode.pm at master · dgkontopoulos/Encode-BetaCode · GitHub, https://github.com/dgkontopoulos/Encode-BetaCode/blob/master/lib/Encode/BetaCode.pm
[24] Encode-DIN66003/ucm/din66003.ucm at master · Corion/Encode-DIN66003 · GitHub, https://github.com/Corion/Encode-DIN66003/blob/master/ucm/din66003.ucm
[25] GitHub - rjbs/Encode-IMAPUTF7, https://github.com/rjbs/Encode-IMAPUTF7
[32] Encode::Bootstring - Encode and decode utf8 into a set of basic code points - metacpan.org, https://metacpan.org/pod/Encode::Bootstring
[27] Encode::Punycode - Encode plugin for Punycode (RFC 3492) - metacpan.org, https://metacpan.org/pod/Encode::Punycode
[30] Encode::DosHebrew - DOS Hebrew Encoding - metacpan.org, https://metacpan.org/pod/Encode::DosHebrew
[35] Encode::DoubleEncodedUTF8 - Fix double encoded UTF-8 bytes to the correct one - metacpan.org, https://metacpan.org/pod/Encode::DoubleEncodedUTF8
[36] Encode::JP::Emoji - Emoji encodings and cross-mapping tables in pure Perl - metacpan.org, https://metacpan.org/pod/Encode::JP::Emoji
[37] Encode::JP::Mobile - 日本の携帯電話向け Shift_JIS (CP932) / UTF-8 エンコーディング - metacpan.org, https://metacpan.org/pod/Encode::JP::Mobile
[42] Encode::JP::Mobile::UnicodeEmoji - Unicode Emoji mapping for Encode::JP::Mobile - metacpan.org, https://metacpan.org/pod/Encode::JP::Mobile::UnicodeEmoji
[6] TeX::Encode - Encode/decode Perl utf-8 strings into TeX - metacpan.org, https://metacpan.org/pod/TeX::Encode
[12] Encode::CNMap - enhanced Chinese encodings with Simplified-Traditional auto-mapping - metacpan.org, https://metacpan.org/pod/Encode::CNMap
[13] Encode::HanConvert - Traditional and Simplified Chinese mappings - metacpan.org, https://metacpan.org/pod/Encode::HanConvert
[22] Encode::UTF8Mac - "utf-8-mac" a variant utf-8 used by OSX filesystem - metacpan.org, https://metacpan.org/pod/Encode::UTF8Mac
[28] Encode::Safename - An encoding for safe filenames. - metacpan.org, https://metacpan.org/pod/Encode::Safename
[29] GitHub - jeffa/Encode-Wechsler: Just another Wechsler encoder/decoder, https://github.com/jeffa/Encode-Wechsler
[31] Encode::HanDetect - Cross-encoding, cross-variant Chinese decoder - metacpan.org, https://metacpan.org/pod/Encode::HanDetect
[33] Encode::Buckwalter - ASCII-based Transliteration for Arabic - metacpan.org, https://metacpan.org/pod/Encode::Buckwalter
[38] GitHub - athreef/Encode-Arabic-Franco: Perl module for Transliteration from 3rbeezy to عربي, https://github.com/athreef/Encode-Arabic-Franco
[39] Encode::MIME::EncWords - MIME 'B' and 'Q' header encoding (alternative) - metacpan.org, https://metacpan.org/pod/Encode::MIME::EncWords
[40] Encode::JavaScript::UCS - JavaScript unicode character encoding - metacpan.org, https://metacpan.org/pod/Encode::JavaScript::UCS
[41] Encode::JavaScript::Cyrillic - Javascript bug fix for cyrillic((bug : %u0410 -%u044f)) - metacpan.org, https://metacpan.org/pod/Encode::JavaScript::Cyrillic
[52] teckit/source/Perl/lib/Encode/TECkit.pm at master · silnrsi/teckit · GitHub, https://github.com/silnrsi/teckit/blob/master/source/Perl/lib/Encode/TECkit.pm
[43]
本体 Encode
の採用の基準はよくわかりません。 開発当時に MIME や Web
でよく使われたものや、有名なものなどが入っているように見えますが、
客観的、理論的な基準があるようには見えません。また、
その後の状況等を反映した更新もなされていないように見えます。
[44] 本体以外の追加モジュールは自由に開発、 CPAN 登録されているため本体以上にばらばらで、 品質もまとめ方も、何を「符号化」とみなすかも様々です。
[45] 欧州や東アジアの公開インターネットの主要な文字符号化はカバーされているように見えます。
[46] 非公開のシステムも EBCDIC の主要なものなどは一通り揃っているようですが、 マイナーなものや細かいバリエーションなどにはほぼ対応できていなそうなのは、 性質上致し方ないのでしょう。
[47] アジア (中央アジア, 東南アジア, 南アジア, 西アジア) 系は弱いようにみえます。この領域は他のプログラミング言語でも標準ライブラリーは貧弱で、 業界全体の課題といえます。
[48]
Encode
は、
Webサーバー等での利用でよく使われる Perl の標準ライブラリーということで、
平成時代中後期には Web 関連でも非常によく利用されました。
[49]
しかしながら、 Webにおける文字コードの処理は現在では Encoding Standard
によって精密に規定されるようになったものの、 Encode
はそれに追随できていないようです。
[50]
HTML, CSS, その他 Web 用の文字符号化の処理では、
Web::Encoding
など最新の Web標準に対応したPerlモジュールを使う必要があります。
[51]
Encode
等の HTML Standard や Encoding Standard
の規定と異なる挙動をする可能性のある Perlモジュールを使うと、
Webブラウザー等と動作の食い違いによってデータを破損させてしまったり、
場合によってはセキュリティーの問題を引き起こすおそれがあります。
[2] 最近の Encode
だと、入力が不正な UTF-8 で
decode
した時、 utf8フラグがついた不正な文字列が返されるようです。
結果、次の適当なタイミングで
Malformed UTF-8 character (fatal)
エラーが出て死ぬようです。
(古い Perl でも最新の Perl でも。)