ນີ້ແມ່ນຄໍາສັ່ງ enc2xs ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
enc2xs -- Perl Encode Module Generator
ສະຫຼຸບສັງລວມ
enc2xs -[ຕົວເລືອກ]
enc2xs -M ModName ໄຟລ໌ແຜນທີ່...
enc2xs -C
ລາຍລະອຽດ
enc2xs ສ້າງສ່ວນຂະຫຍາຍ Perl ສໍາລັບການນໍາໃຊ້ໂດຍການເຂົ້າລະຫັດຈາກທັງການສ້າງແຜນທີ່ຕົວອັກສອນ Unicode
ໄຟລ໌ (.ucm) ຫຼື Tcl ໄຟລ໌ເຂົ້າລະຫັດ (.enc). ນອກຈາກການນໍາໃຊ້ພາຍໃນລະຫວ່າງການກໍ່ສ້າງ
ຂະບວນການຂອງໂມດູນການເຂົ້າລະຫັດ, ທ່ານສາມາດນໍາໃຊ້ enc2xs ເພື່ອເພີ່ມການເຂົ້າລະຫັດຂອງທ່ານເອງໃສ່ perl. ບໍ່
ຄວາມຮູ້ຂອງ XS ແມ່ນມີຄວາມຈໍາເປັນ.
ດ່ວນ ຄູ່ມື
ຖ້າທ່ານຕ້ອງການຮູ້ພຽງເລັກນ້ອຍກ່ຽວກັບ Perl ເທົ່າທີ່ເປັນໄປໄດ້ແຕ່ຕ້ອງການເພີ່ມການເຂົ້າລະຫັດໃຫມ່, ພຽງແຕ່
ອ່ານບົດນີ້ແລະລືມສ່ວນທີ່ເຫຼືອ.
0. ມີໄຟລ໌ .ucm ພ້ອມ. ທ່ານສາມາດໄດ້ຮັບມັນຈາກບາງບ່ອນຫຼືທ່ານສາມາດຂຽນຂອງທ່ານເອງຈາກ
scratch ຫຼືທ່ານສາມາດ grab ຫນຶ່ງຈາກການແຈກຢາຍການເຂົ້າລະຫັດແລະປັບແຕ່ງມັນ. ສໍາລັບ
ຮູບແບບ UCM, ເບິ່ງບົດຕໍ່ໄປ. ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ຂ້ອຍຈະໂທຫາທິດສະດີຂອງຂ້ອຍ
ການເຂົ້າລະຫັດ myascii, ກໍານົດໃນ my.ucm. "$" ແມ່ນການເຕືອນຂອງແກະ.
$ls -F
my.ucm
1. ອອກຄຳສັ່ງດັ່ງນີ້;
$ enc2xs -M ຂອງຂ້ອຍ my.ucm
ການສ້າງ Makefile.PL
ການສ້າງ My.pm
ສ້າງ README
ສ້າງການປ່ຽນແປງ
ດຽວນີ້ເບິ່ງໄດເລກະທໍລີປະຈຸບັນຂອງເຈົ້າ. ມັນຄວນຈະເປັນແບບນີ້.
$ls -F
Makefile.PL My.pm my.ucm t/
ໄຟລ໌ຕໍ່ໄປນີ້ຖືກສ້າງຂື້ນ.
Makefile.PL - script MakeMaker
My.pm - ໂມດູນຍ່ອຍເຂົ້າລະຫັດ
t/My.t - ໄຟລ໌ທົດສອບ
1.1.
ຖ້າທ່ານຕ້ອງການ *.ucm ຕິດຕັ້ງຮ່ວມກັນກັບໂມດູນ, ເຮັດດັ່ງຕໍ່ໄປນີ້;
$ mkdir ເຂົ້າລະຫັດ
$ mv *.ucm ການເຂົ້າລະຫັດ
$ enc2xs -M ການເຂົ້າລະຫັດຂອງຂ້ອຍ / * ucm
2. ແກ້ໄຂໄຟລ໌ທີ່ສ້າງຂຶ້ນ. ທ່ານບໍ່ຈໍາເປັນຕ້ອງຖ້າຫາກວ່າທ່ານບໍ່ມີເວລາແລະບໍ່ມີຈຸດປະສົງ
ມອບໃຫ້ຄົນອື່ນ. ແຕ່ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະແກ້ໄຂຝັກແລະເພີ່ມການທົດສອບເພີ່ມເຕີມ.
3. ດຽວນີ້ອອກຄໍາສັ່ງໃຫ້ Perl Mongers ທຸກຄົນຮັກ:
$ perl Makefile.PL
ການຂຽນ Makefile ສໍາລັບການເຂົ້າລະຫັດ::My
4. ໃນປັດຈຸບັນທັງຫມົດທີ່ທ່ານມີເພື່ອເຮັດແມ່ນເຮັດໃຫ້.
$ ເຮັດ
cp My.pm blib/lib/Encode/My.pm
/usr/local/bin/perl /usr/local/bin/enc2xs -Q -O \
-o encode_t.c -f encode_t.fnm
ການອ່ານ myascii (myascii)
ການຂຽນແບບຟອມລວບລວມ
128 bytes ໃນຕາຕະລາງ string
384 bytes (75%) ບັນທຶກຈຸດທີ່ຊໍ້າກັນ
1 bytes (0.775%) ບັນທຶກໂດຍໃຊ້ substrings
....
chmod 644 blib/arch/auto/Encode/My/My.bs
$
ເວລາທີ່ມັນໃຊ້ເວລາແຕກຕ່າງກັນຂຶ້ນກັບວ່າເຄື່ອງຂອງເຈົ້າໄວເທົ່າໃດ ແລະຂະໜາດໃດຂອງເຈົ້າ
ການເຂົ້າລະຫັດແມ່ນ. ເວັ້ນເສຍແຕ່ວ່າທ່ານກໍາລັງເຮັດວຽກກ່ຽວກັບບາງສິ່ງບາງຢ່າງຂະຫນາດໃຫຍ່ເຊັ່ນ euc-tw, ມັນຈະບໍ່ໃຊ້ເວລາເຊັ່ນດຽວກັນ
ຍາວ.
5. ທ່ານສາມາດ "ເຮັດການຕິດຕັ້ງ" ແລ້ວແຕ່ທ່ານຄວນທົດສອບກ່ອນ.
$ ເຮັດການທົດສອບ
PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib \
-e 'ໃຊ້ການທົດສອບ::Harness qw(&runtests $verbose); \
$verbose=0; runtests @ARGV;' t/*.t
t/My....ຕົກລົງ
ການທົດສອບທັງຫມົດປະສົບຜົນສໍາເລັດ.
Files=1, Tests=2, 0 wallclock secs
(0.09 cusr + 0.01 csys = 0.09 CPU)
6. ຖ້າທ່ານພໍໃຈກັບຜົນການທົດສອບ, ພຽງແຕ່ "ເຮັດການຕິດຕັ້ງ"
7. ຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະເພີ່ມການເຂົ້າລະຫັດຂອງທ່ານເຂົ້າໄປໃນບັນຊີລາຍການການໂຫຼດຄວາມຕ້ອງການຂອງ Encode (ສະນັ້ນທ່ານບໍ່ຈໍາເປັນຕ້ອງ
"ໃຊ້ການເຂົ້າລະຫັດ::YourEncoding"), ດໍາເນີນການ
enc2xs -C
ເພື່ອອັບເດດການເຂົ້າລະຫັດ::ConfigLocal, ໂມດູນທີ່ຄວບຄຸມການຕັ້ງຄ່າທ້ອງຖິ່ນ. ຫຼັງຈາກນັ້ນ,
"ໃຊ້ການເຂົ້າລະຫັດ;" ພຽງພໍທີ່ຈະໂຫຼດການເຂົ້າລະຫັດຂອງທ່ານຕາມຄວາມຕ້ອງການ.
ໄດ້ Unicode ລັກສະນະ ແຜນທີ່
ການເຂົ້າລະຫັດໃຊ້ຮູບແບບ Unicode Character Map (UCM) ສໍາລັບການສ້າງແຜນທີ່ຕົວອັກສອນຕົ້ນສະບັບ. ນີ້
ຮູບແບບແມ່ນໃຊ້ໂດຍຊຸດ ICU ຂອງ IBM ແລະຖືກຮັບຮອງເອົາໂດຍ Nick Ing-Simmons ເພື່ອໃຊ້ກັບ
ໂມດູນເຂົ້າລະຫັດ. ເນື່ອງຈາກ UCM ມີຄວາມຍືດຫຍຸ່ນຫຼາຍກວ່າແຜນທີ່ການເຂົ້າລະຫັດຂອງ Tcl ແລະຜູ້ໃຊ້ຫຼາຍກວ່າ.
ເປັນມິດ, ນີ້ແມ່ນຮູບແບບທີ່ແນະນໍາສໍາລັບການເຂົ້າລະຫັດໃນປັດຈຸບັນ.
ໄຟລ໌ UCM ເປັນແບບນີ້.
#
# ຄຳເຫັນ
#
"US-ascii" # ຕ້ອງການ
"ascii" # ທາງເລືອກ
1 # ຕ້ອງການ; ປົກກະຕິແລ້ວ 1
1 # ສູງສຸດ. # ຂອງ bytes/char
\x3F # ຕົວປ່ຽນແທນ
#
CHARMAP
\x0000 |00 #
\x0001 |01 #
\x0002 |02 #
....
\x007C |7 # ເສັ້ນແນວຕັ້ງ
\x007D |7 # ວົງເລັບຂວາ
\x007E |7 # TILDE
\x007F |7 #
ສິ້ນ CHARMAP
· ສິ່ງໃດແດ່ທີ່ປະຕິບັດຕາມ "#" ແມ່ນຖືວ່າເປັນຄຳເຫັນ.
· ພາກສ່ວນຫົວສືບຕໍ່ໄປຈົນຮອດແຖວທີ່ມີຄຳວ່າ CHARMAP. ພາກນີ້
ມີຮູບແບບຂອງ ມູນຄ່າ, ຫນຶ່ງຄູ່ຕໍ່ເສັ້ນ. Strings ທີ່ໃຊ້ເປັນຄ່າຈະຕ້ອງເປັນ
ອ້າງອີງ. Barewords ຖືກປະຕິບັດເປັນຕົວເລກ. \xXX ເປັນຕົວແທນຂອງ byte.
ສ່ວນໃຫຍ່ຂອງຄໍາສໍາຄັນແມ່ນຄໍາອະທິບາຍດ້ວຍຕົນເອງ. ທາດຍ່ອຍ ຫມາຍເຖິງລັກສະນະການທົດແທນ, ບໍ່ແມ່ນ
ຕົວອັກສອນຍ່ອຍ. ໃນເວລາທີ່ທ່ານຖອດລະຫັດລໍາດັບ Unicode ກັບການເຂົ້າລະຫັດນີ້ແຕ່ບໍ່ກົງກັນ
ລັກສະນະຖືກພົບເຫັນ, ລໍາດັບ byte ທີ່ກໍານົດໄວ້ໃນທີ່ນີ້ຈະຖືກນໍາໃຊ້. ສໍາລັບກໍລະນີຫຼາຍທີ່ສຸດ, ໄດ້
ຄ່າໃນທີ່ນີ້ແມ່ນ \x3F; ໃນ ASCII, ນີ້ແມ່ນເຄື່ອງຫມາຍຄໍາຖາມ.
· CHARMAP ເລີ່ມຕົ້ນພາກສ່ວນແຜນທີ່ລັກສະນະ. ແຕ່ລະສາຍມີຮູບແບບດັ່ງຕໍ່ໄປນີ້:
\xXX.. |0 # ຄຳເຫັນ
^ ^ ^
| | +- ທຸງ Fallback
| +-------- ລໍາດັບ byte ທີ່ເຂົ້າລະຫັດ
+-------------- ID ຕົວອັກສອນ Unicode ໃນ hex
ຮູບແບບແມ່ນປະມານຄືກັນກັບພາກສ່ວນຫົວ ຍົກເວັ້ນສຳລັບທຸງ fallback: |
ຕາມດ້ວຍ 0..3. ຄວາມຫມາຍຂອງຄ່າທີ່ເປັນໄປໄດ້ມີດັ່ງນີ້:
|0 ການເດີນທາງໄປມາປອດໄພ. ຕົວອັກສອນທີ່ຖອດລະຫັດເປັນ Unicode ເຂົ້າລະຫັດກັບໄປເປັນໄບຕ໌ດຽວກັນ
ລຳດັບ. ຕົວອັກສອນສ່ວນໃຫຍ່ມີທຸງນີ້.
|1 Fallback ສໍາລັບ unicode -> ການເຂົ້າລະຫັດ. ເມື່ອເຫັນ, enc2xs ເພີ່ມລັກສະນະນີ້ສໍາລັບ
ແຜນທີ່ເຂົ້າລະຫັດເທົ່ານັ້ນ.
|2 ຂ້າມການວາງແຜນຍ່ອຍຍ່ອຍຄວນຈະບໍ່ມີຈຸດລະຫັດ.
|3 Fallback ສໍາລັບການເຂົ້າລະຫັດ -> unicode. ເມື່ອເຫັນ, enc2xs ເພີ່ມລັກສະນະນີ້ສໍາລັບ
ຖອດລະຫັດແຜນທີ່ເທົ່ານັ້ນ.
· ແລະສຸດທ້າຍ, END OF CHARMAP ສິ້ນສຸດພາກ.
ເມື່ອທ່ານກໍາລັງສ້າງໄຟລ໌ UCM ດ້ວຍຕົນເອງ, ທ່ານຄວນຄັດລອກ ascii.ucm ຫຼືທີ່ມີຢູ່ແລ້ວ
ການເຂົ້າລະຫັດທີ່ຢູ່ໃກ້ກັບເຈົ້າ, ແທນທີ່ຈະຂຽນຂອງທ່ານເອງຈາກຈຸດເລີ່ມຕົ້ນ.
ເມື່ອທ່ານເຮັດແນວນັ້ນ, ໃຫ້ແນ່ໃຈວ່າທ່ານອອກໄປຢ່າງຫນ້ອຍ U0000 to U0020 ເຊັ່ນດຽວກັບ, ເວັ້ນເສຍແຕ່ວ່າສະພາບແວດລ້ອມຂອງທ່ານ
ແມ່ນ EBCDIC.
ຄໍາເຕືອນ: ບໍ່ແມ່ນຄຸນສົມບັດທັງໝົດໃນ UCM ຖືກປະຕິບັດ. ຕົວຢ່າງ, icu:state ບໍ່ໄດ້ໃຊ້.
ເນື່ອງຈາກວ່າ, ທ່ານຈໍາເປັນຕ້ອງໄດ້ຂຽນໂມດູນ perl ຖ້າທ່ານຕ້ອງການສະຫນັບສະຫນູນ algorithmical
ການເຂົ້າລະຫັດ, ໂດຍສະເພາະຊຸດ ISO-2022. ໂມດູນດັ່ງກ່າວລວມມີການເຂົ້າລະຫັດ::JP::2022_JP,
ເຂົ້າລະຫັດ::KR::2022_KR, ແລະເຂົ້າລະຫັດ::TW::HZ.
ການຮັບມື ກັບ ຊ້ໍາ ເຮັດແຜນທີ່
ເມື່ອທ່ານສ້າງແຜນທີ່, ທ່ານຄວນຈະເຮັດໃຫ້ແຜນທີ່ຂອງທ່ານໄປກັບທີ່ປອດໄພ. ນັ້ນແມ່ນ,
"encode('your-encoding', decode('your-encoding', $data)) eq $data" ຫຍໍ້ມາຈາກທັງໝົດ
ຕົວອັກສອນທີ່ຖືກໝາຍເປັນ "|0". ນີ້ແມ່ນວິທີໃຫ້ແນ່ໃຈວ່າ:
·ຈັດຮຽງແຜນທີ່ຂອງທ່ານໃນຄໍາສັ່ງ Unicode.
· ເມື່ອທ່ານມີລາຍການຊໍ້າກັນ, ໃຫ້ໝາຍອັນໃດນຶ່ງດ້ວຍ '|1' ຫຼື '|3'.
· ແລະໃຫ້ແນ່ໃຈວ່າລາຍການ '|1' ຫຼື '|3' ປະຕິບັດຕາມລາຍການ '|0'.
ນີ້ແມ່ນຕົວຢ່າງຈາກ big5-eten.
\xF2550\xF9 |9
\xA2550\xA2 |4
ການເຂົ້າລະຫັດພາຍໃນ -> Unicode ແລະ Unicode -> Encoding Map ມີລັກສະນະແບບນີ້;
E to UU ກັບ E
--------------------------------------
\xF9\xF9 => U2550 U2550 => \xF9\xF9
\xA2\xA4 => U2550
ສະນັ້ນ ການເດີນທາງໄປກັບແມ່ນປອດໄພສຳລັບ \xF9\xF9. ແຕ່ຖ້າເສັ້ນຂ້າງເທິງແມ່ນ upside ລົງ, ນີ້ແມ່ນສິ່ງທີ່
ເກີດຂຶ້ນ.
E to UU ກັບ E
--------------------------------------
\xA2\xA4 => U2550 U2550 => \xF9\xF9
(\xF9\xF9 => U2550 ຖືກຂຽນທັບແລ້ວ!)
ຊຸດການເຂົ້າລະຫັດມາພ້ອມກັບ ucmlint, ເປັນຜົນປະໂຫຍດທີ່ crude ແຕ່ພຽງພໍທີ່ຈະກວດສອບການ
ຄວາມສົມບູນຂອງໄຟລ໌ UCM. ກວດເບິ່ງພາຍໃຕ້ໄດເລກະທໍລີ Encode/bin ສໍາລັບການນີ້.
ໃນເວລາທີ່ສົງໃສ, ທ່ານສາມາດນໍາໃຊ້ ucsort, ແຕ່ຜົນປະໂຫຍດອື່ນພາຍໃຕ້ການເຂົ້າລະຫັດ / bin directory.
Bookmarks
· ICU Home Pagehttp://www.icu-project.org/>
· ICU ຕາຕະລາງການສ້າງແຜນທີ່ລັກສະນະhttp://site.icu-project.org/charts/charset>
· ICU: ຂໍ້ມູນການແປງhttp://www.icu-project.org/userguide/conversion-data.html>
ໃຊ້ enc2xs ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net