| ShiftJIS-X0213-MapUTF documentation | Contained in the ShiftJIS-X0213-MapUTF distribution. |
ShiftJIS::X0213::MapUTF::Supplements - Supplemental Mapping from Unicode to Shift_JISX0213
use ShiftJIS::X0213::MapUTF; use ShiftJIS::X0213::MapUTF::Supplements; $sjis_str = utf8_to_sjis2004 (\&to_sjis2004_supplements, $utf8_str); $sjis_str = utf16_to_sjis2004 (\&to_sjis2004_supplements, $utf16_str); $sjis_str = utf16le_to_sjis2004(\&to_sjis2004_supplements, $utf16le_str); $sjis_str = utf16be_to_sjis2004(\&to_sjis2004_supplements, $utf16be_str); $sjis_str = utf32_to_sjis2004 (\&to_sjis2004_supplements, $utf32_str); $sjis_str = utf32le_to_sjis2004(\&to_sjis2004_supplements, $utf32le_str); $sjis_str = utf32be_to_sjis2004(\&to_sjis2004_supplements, $utf32be_str); $sjis_str = unicode_to_sjis2004(\&to_sjis2004_supplements, $unicode_str); $sjis_str = utf8_to_sjis0213 (\&to_sjis0213_supplements, $utf8_str); $sjis_str = utf16_to_sjis0213 (\&to_sjis0213_supplements, $utf16_str); $sjis_str = utf16le_to_sjis0213(\&to_sjis0213_supplements, $utf16le_str); $sjis_str = utf16be_to_sjis0213(\&to_sjis0213_supplements, $utf16be_str); $sjis_str = utf32_to_sjis0213 (\&to_sjis0213_supplements, $utf32_str); $sjis_str = utf32le_to_sjis0213(\&to_sjis0213_supplements, $utf32le_str); $sjis_str = utf32be_to_sjis0213(\&to_sjis0213_supplements, $utf32be_str); $sjis_str = unicode_to_sjis0213(\&to_sjis0213_supplements, $unicode_str);
This module provides some supplemental mappings (fallbacks) from Unicode to Shift_JISX0213, via a coderef.
$sjis2004_char = to_sjis2004_supplements($unicode_codepoint)$sjis0213_char = to_sjis0213_supplements($unicode_codepoint)Returns a SJIS character (as a string) for some Unicode codepoints unmapped to SJIS. Otherwise returns a null string.
NOTE: to_sjis0213_supplements is just an alias
for to_sjis2004_supplements, then their mappings has no difference.
E.g. to_sjis2004_supplements(0x9B1D) returns "\xFC\x5A";to_sjis2004_supplements(0x00B5) returns "\x83\xCA";to_sjis0213_supplements(0x9B1C) returns "\xFC\x5A";to_sjis0213_supplements(0x00B5) returns "\x83\xCA".
This module is an experimental release. Propriety of mapping is not guaranteed. Any of these supplemental mappings may be added, modified, or removed in future.
SADAHIRO Tomoyuki <SADAHIRO@cpan.org>
Copyright(C) 2002-2007, SADAHIRO Tomoyuki. Japan. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| ShiftJIS-X0213-MapUTF documentation | Contained in the ShiftJIS-X0213-MapUTF distribution. |
package ShiftJIS::X0213::MapUTF::Supplements; use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use vars qw(%Supplements); require Exporter; @ISA = qw(Exporter); @EXPORT = qw(to_sjis0213_supplements to_sjis2004_supplements); @EXPORT_OK = qw(%Supplements); $VERSION = '0.31'; %Supplements = ( 0x00B5, # MICRO SIGN (ISO/IEC 8859-1 11/05) "\x83\xCA", # GREEK SMALL LETTER MU (U+03BC) 0x0110, # LATIN CAPITAL LETTER D WITH STROKE (ISO/IEC 8859-2 13/00) "\x85\x66", # LATIN CAPITAL LETTER ETH (U+00D0) 0x2015, # HORIZONTAL BAR "\x81\x5C", # EM DASH (U+2014) 0x2211, # N-ARY SUMMATION (Windows CP932 0x8794) "\x83\xB0", # GREEK CAPITAL LETTER SIGMA (U+03A3) 0x2985, # LEFT WHITE PARENTHESIS "\x81\xD4", # FULLWIDTH LEFT WHITE PARENTHESIS (U+FF5F) 0x2986, # RIGHT WHITE PARENTHESIS "\x81\xD5", # FULLWIDTH RIGHT WHITE PARENTHESIS (U+FF60) 0x3099, # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK "\xDE", # HALFWIDTH KATAKANA VOICED SOUND MARK (U+FF9E) // NFKC 0x309A, # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK "\xDF", # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK (U+FF9F) // NFKC 0x4E44, # CJK UNIFIED IDEOGRAPH-4E44 (JIS X 0212 16-17) "\x81\x59", # IDEOGRAPHIC CLOSING MARK (U+3006) 0x9B1C, # CJK UNIFIED IDEOGRAPH-9B1C (for backward compatibility) "\xFC\x5A", # CJK UNIFIED IDEOGRAPH-9B1C 0x9B1D, # CJK UNIFIED IDEOGRAPH-9B1D (JIS X 0213:2000) "\xFC\x5A", # CJK UNIFIED IDEOGRAPH-9B1C 0xFF3C, # FULLWIDTH REVERSE SOLIDUS "\x81\x5F", # REVERSE SOLIDUS (U+005C) 0xFF5E, # FULLWIDTH TILDE "\x81\xB0", # TILDE (U+007E) 0xFFE0, # FULLWIDTH CENT SIGN "\x81\x91", # CENT SIGN (U+00A2) 0xFFE1, # FULLWIDTH POUND SIGN "\x81\x92", # POUND SIGN (U+00A3) 0xFFE2, # FULLWIDTH NOT SIGN "\x81\xCA", # NOT SIGN (U+00AC) 0xFFE4, # FULLWIDTH BROKEN BAR "\x85\x44", # BROKEN BAR (U+00A6) ); sub to_sjis0213_supplements { defined $_[0] && $Supplements{$_[0]} || '' } sub to_sjis2004_supplements { defined $_[0] && $Supplements{$_[0]} || '' } 1; __END__