NAME (–¼‘O)
ShiftJIS::CP932::MapUTF - Microsoft CP-932‚ÆUnicode‚Æ‚Ì•ÏŠ·
ŠT—v
use ShiftJIS::CP932::MapUTF qw(:all);
$utf8_string = cp932_to_utf8($cp932_string);
$cp932_string = utf8_to_cp932($utf8_string);
�à–¾
ƒ}ƒCƒNƒ�ƒ\ƒtƒgƒEƒBƒ“ƒhƒEƒY (Microsoft Windows) ƒR�[ƒhƒy�[ƒW 932 (CP-932) ‚̃e�[ƒuƒ‹‚Í 7915 •¶Žš‚©‚ç‚È‚è‚Ü‚·�B
JIS X 0201 ˆêƒoƒCƒg•¶Žš�i191 •¶Žš�j
JIS X 0208 “ñƒoƒCƒg•¶Žš�i6879 •¶Žš�j
NEC“ÁŽê•¶Žš�i83 •¶Žš�A13‹æ�j
NEC‘I’èIBMŠg’£•¶Žš�i374 •¶Žš�A89�`92‹æ�j
IBMŠg’£•¶Žš�i388 •¶Žš�A115�`119‹æ�j
‚±‚Ì•\‚Í�A‰�•œ•ÏŠ·‚Å‚«‚È‚¢“ñ�d’è‹`•¶Žš‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·�B ‚±‚ê‚ç‚Ì“ñ�d’è‹`•¶Žš‚̓xƒ“ƒ_�[�iNEC ‚¨‚æ‚Ñ IBM�j’è‹`‚ÌŠg’£•¶Žš‚Ì‚½‚ß‚Å‚·�B —Ⴆ‚Î�AUnicode ‚Ì U+2252
‚ɑΉž•t‚¯‚ç‚ê‚镶Žš‚Í“ñŒÂ‚ ‚è‚Ü‚·�B ‚‚܂è�AJIS X 0208 •¶Žš‚Ì 0x81e0
‚Æ NEC “ÁŽê•¶Žš‚Ì 0x8790
‚Å‚·�B
ŽÀ�Û�ACP-932 ‚Ì 7915 •¶Žš‚ð Unicode ‚Ì 7517 •¶Žš‚ɑΉž•t‚¯‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ�B ‚±‚Ì‚½‚ß�A398 ‚̉�•œ•ÏŠ·‚Å‚«‚È‚¢‘ΉžŠÖŒW‚ª‘¶�Ý‚µ‚Ü‚·�B
‚±‚̃‚ƒWƒ…�[ƒ‹‚Í�ACP-932 ‚©‚ç Unicode ‚É�A‚Ü‚½�A Unicode ‚©‚ç CP-932 ‚É�A“K�Ø‚É•ÏŠ·‚·‚éŠÖ�”‚ð’ñ‹Ÿ‚µ‚Ü‚·�B
CP-932 ‚©‚ç Unicode ‚Ö‚Ì•ÏŠ·
‘æˆêˆø�”‚ªƒŒƒtƒ@ƒŒƒ“ƒX‚Ì�ê�‡�A‚»‚ê‚Í SJIS_CALLBACK
‚Æ‚µ‚Ä�A Unicode ‚ւ̑Ήž‚ª‚È‚¢ CP-932 •¶Žš‚Ì�ˆ—�‚É—p‚¢‚ç‚ê‚Ü‚·�B (STRING
‚ɃŒƒtƒ@ƒŒƒ“ƒX‚ð—^‚¦‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñ�B)
SJIS_CALLBACK
‚ª—^‚¦‚ç‚ê‚Ä‚¢‚é�ê�‡�A ‘æ“ñˆø�”‚ª STRING
‚Æ‚µ‚Ä—p‚¢‚ç‚ê‚Ü‚·�B ‚³‚à‚È‚¯‚ê‚Αæˆêˆø�”‚ª STRING
‚É‚È‚è‚Ü‚·�B
‚à‚µ SJIS_CALLBACK
‚ª—^‚¦‚ç‚ê‚Ä‚¢‚È‚¢�ê�‡�A Unicode ‚ւ̑Ήž‚ª‚È‚¢ CP-932 •¶Žš‚Í–Ù‚Á‚Ä�í�œ‚³‚ê�A •”•ª•¶Žš‚͈êƒoƒCƒg•ª’µ‚΂³‚ê‚Ü‚·�B SJIS_CALLBACK
‚Æ‚µ‚Ä�A�í‚ɋ󕶎š—ñ‚ð•Ô‚· ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX (sub {''}
) ‚ª“n‚³‚ꂽ‚©‚̂悤‚É“®�삵‚Ü‚·�B
�¡‚Ì‚Æ‚±‚ë�ASJIS_CALLBACK
‚Æ‚µ‚Ä‚Í�A ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚Ì‚Ý‚ªŽg‚¦‚Ü‚·�B ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚Ì•Ô‚è’l‚ªƒ}ƒbƒsƒ“ƒO‚Ì‚È‚¢•¶Žš‚Ì‘ã‚í‚è‚É‘}“ü‚³‚ê‚Ü‚·�B
ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX SJIS_CALLBACK
‚Í�AˆêŒÂˆÈ�ã‚̈ø�”‚Æ‚Æ‚à‚É ŒÄ‚Ñ�o‚³‚ê‚Ü‚·�Bƒ}ƒbƒsƒ“ƒO‚Ì‚È‚¢•¶Žš‚ª•”•ª“I‚È“ñƒoƒCƒg•¶Žš �i‘æˆêƒoƒCƒg‚݂̂̈êƒoƒCƒg’·‚Ì•¶Žš—ñ�j‚Ì�ê�‡�A ‘æˆêˆø�”‚Í–¢’è‹`’l�iundef
�j‚É‚È‚è�A ‘æ“ñˆø�”‚̓oƒCƒg‚ð•\‚·•„�†‚È‚µ�®�”’l‚É‚È‚è‚Ü‚·�B •”•ª•¶Žš‚Å‚È‚¯‚ê‚Î�A‘æˆêˆø�”‚Í�A•¶Žš‚ð•\‚·•¶Žš—ñ‚É‚È‚è‚Ü‚·�B
ƒfƒtƒHƒ‹ƒg‚Å‚Í�A•”•ª“I‚È“ñƒoƒCƒg•¶Žš‚Í�A•¶Žš—ñ�iSTRING
�j‚Ì––”ö‚É‚Ì‚Ý Œ»‚ê‚é‰Â”\�«‚ª‚ ‚è�A•¶Žš—ñ‚Ì�擪‚â“r’†‚É‚ÍŒ»‚ê‚Ü‚¹‚ñ �iSJIS_OPTION
‚Ì 't'
‚àŽQ�Æ‚Ì‚±‚Æ�j�B
—á
my $sjis_callback = sub {
my ($char, $byte) = @_;
return function($char) if defined $char;
die sprintf "found partial byte 0x%02x", $byte;
};
�ã‹L‚Ì—á‚Å�A$char
‚Æ‚µ‚Ä‚Í�A"\x80"
, "\x82\xf2"
, "\xfc\xfc"
, "\xff"
‚È‚Ç‚ª‚ ‚蓾‚Ü‚·�B
SJIS_CALLBACK
‚Ì•Ô‚è’l‚Í�A•ÏŠ·�æ‚ÌŒ`Ž®‚É�‡‚킹‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ�B —Ⴆ‚Î�Acp932_to_utf16be()
‚Æ‚Æ‚à‚É UTF-8 ‚ð•Ô‚· SJIS_CALLBACK
‚ðŽg‚Á‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñ�B ‚‚܂è�AUTF ‚²‚Æ‚É�ASJIS_CALLBACK
‚ð—pˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚·�B
SJIS_OPTION
‚ð STRING
‚ÌŒã‚É‚¨‚‚±‚Æ‚ª‚Å‚«‚Ü‚·�B ‚±‚ê‚ç‚Í 'tg'
‚â 'gst'
‚̂悤‚É‘g‚Ý�‡‚킹‚邱‚Æ‚à ‚Å‚«‚Ü‚·�i�‡�˜‚Í”CˆÓ‚Å‚·�j�B
'g' CP-932 ŠOŽš�iƒ†�[ƒU’è‹`•¶Žš�j[0xF040�`0xF9FC (95�`114‹æ)] ‚ð
Unicode ‚Ì PUA [0xE000�`0xE757] ‚É•ÏŠ·‚µ‚Ü‚·�i1880 •¶Žš�j�B
's' CP-932 –¢’è‹`‚̈êƒoƒCƒg•¶Žš‚ðˆÈ‰º‚̂悤‚É•ÏŠ·‚µ‚Ü‚·�B
0x80 => U+0080, 0xA0 => U+F8F0,
0xFD => U+F8F1, 0xFE => U+F8F2, 0xFF => U+F8F3.
't' ‘æ“ñƒoƒCƒg‚Ì”ÍˆÍ [0x40..0x7E, 0x80..0xFC] ‚ðƒ`ƒFƒbƒN‚µ‚Ü‚·�B
—Ⴆ‚Î "\x81\x39" ‚̓fƒtƒHƒ‹ƒg‚Å‚Í–¢’è‹`‚Ì“ñƒoƒCƒg•¶Žš‚Æ
‚Ý‚È‚µ‚Ü‚·‚ª�A't' ‚ð—p‚¢‚é‚Æ�A•”•ª•¶ŽšƒoƒCƒg 0x81 ‚ÌŒã‚É
ˆêƒoƒCƒg•¶Žš "\x39" ‚ª‘±‚¢‚½‚à‚Ì‚Æ‚Ý‚È‚µ‚Ü‚·�B
cp932_to_utf8([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð UTF-8 ‚É•ÏŠ·‚µ‚Ü‚·�B
cp932_to_unicode([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð Unicode ‚É•ÏŠ·‚µ‚Ü‚·�B �i
SVf_UTF8
ƒtƒ‰ƒO•t‚«‚Ì Perl‚Ì“à•”Œ`Ž®, perlunicode ‚ðŽQ�Æ�B�j‚±‚ÌŠÖ�”‚Í Perl 5.6.1 ˆÈ�~�A‚©‚ XS ”Å‚Å‚Ì‚Ý’ñ‹Ÿ‚³‚ê‚Ü‚·�B
cp932_to_utf16le([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð UTF-16LE ‚É•ÏŠ·‚µ‚Ü‚·�B
cp932_to_utf16be([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð UTF-16BE ‚É•ÏŠ·‚µ‚Ü‚·�B
cp932_to_utf32le([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð UTF-32LE ‚É•ÏŠ·‚µ‚Ü‚·�B
cp932_to_utf32be([SJIS_CALLBACK,] STRING [, SJIS_OPTION])
-
CP-932 ‚ð UTF-32BE ‚É•ÏŠ·‚µ‚Ü‚·�B
Unicode ‚©‚ç CP-932 ‚Ö‚Ì•ÏŠ·
“ñ�d’è‹`•¶Žš‚Í‚·‚ׂÄ�AMicrosoft PRB Q170559 ‚É�]‚Á‚Ä•ÏŠ·‚³‚ê‚Ü‚·�B —Ⴆ‚Î U+2252
‚Í "\x87\x90"
‚Å‚Í‚È‚ "\x81\xE0"
‚É•ÏŠ·‚³‚ê‚Ü‚·�B
‘æˆêˆø�”‚ªƒŒƒtƒ@ƒŒƒ“ƒX‚Ì�ê�‡�A‚»‚ê‚Í UNICODE_CALLBACK
‚Æ‚µ‚Ä�A CP-932 ‚ւ̑Ήž‚ª‚È‚¢ Unicode •¶Žš‚Ì�ˆ—�‚É—p‚¢‚ç‚ê‚Ü‚·�B (STRING
‚ɃŒƒtƒ@ƒŒƒ“ƒX‚ð—^‚¦‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñ�B)
UNICODE_CALLBACK
‚ª—^‚¦‚ç‚ê‚Ä‚¢‚é�ê�‡�A ‘æ“ñˆø�”‚ª STRING
‚Æ‚µ‚Ä—p‚¢‚ç‚ê‚Ü‚·�B ‚³‚à‚È‚¯‚ê‚Αæˆêˆø�”‚ª STRING
‚É‚È‚è‚Ü‚·�B
‚à‚µ UNICODE_CALLBACK
‚ª—^‚¦‚ç‚ê‚Ä‚¢‚È‚¢�ê�‡�A CP-932 ‚ւ̑Ήž‚ª‚È‚¢ Unicode •¶Žš‚Í–Ù‚Á‚Ä�í�œ‚³‚ê�A ‚Ü‚½�A•”•ª•¶Žš‚͈êƒoƒCƒg•ª’µ‚΂³‚ê‚Ü‚·�B UNICODE_CALLBACK
‚Æ‚µ‚Ä�A�í‚ɋ󕶎š—ñ‚ð•Ô‚· ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX (sub {''}
) ‚ª“n‚³‚ꂽ‚©‚̂悤‚É“®�삵‚Ü‚·�B
�¡‚Ì‚Æ‚±‚ë�AUNICODE_CALLBACK
‚Æ‚µ‚Ä‚Í�A ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚Ì‚Ý‚ªŽg‚¦‚Ü‚·�B ‚»‚̃R�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚Ì•Ô‚è’l‚ª ƒ}ƒbƒsƒ“ƒO‚Ì‚È‚¢•¶Žš‚Ì‘ã‚í‚è‚É‘}“ü‚³‚ê‚Ü‚·�B
ƒR�[ƒhƒŠƒtƒ@ƒŒƒ“ƒX UNICODE_CALLBACK
‚Í�A ˆêŒÂˆÈ�ã‚̈ø�”‚Æ‚Æ‚à‚ɌĂÑ�o‚³‚ê‚Ü‚·�Bƒ}ƒbƒsƒ“ƒO‚Ì‚È‚¢•¶Žš‚ª •”•ª“I•¶Žš�i•s�³‚ȃoƒCƒg�j‚Ì�ê�‡�A‘æˆêˆø�”‚Í–¢’è‹`’l�iundef
�j‚É‚È‚è�A ‘æ“ñˆø�”‚̓oƒCƒg‚ð•\‚·•„�†‚È‚µ�®�”’l‚É‚È‚è‚Ü‚·�B •”•ª•¶Žš‚Å‚È‚¯‚ê‚Î�A‘æˆêˆø�”‚Í�AUnicode•¶Žš‚Ì•„�†ˆÊ’u‚ð•\‚· •„�†‚È‚µ�®�”’l‚É‚È‚è‚Ü‚·�B
—Ⴆ‚Î�ACP-932 ‚ւ̑Ήž‚ª‚È‚¢•¶Žš‚ð HTML 4.01 ‚Ì�”’l•¶ŽšŽQ�Æ‚É •ÏŠ·‚·‚é•û–@‚ðŽ¦‚µ‚Ü‚·�B
sub toHexNCR {
my ($char, $byte) = @_;
return sprintf("&#x%x;", $char) if defined $char;
die sprintf "illegal byte 0x%02x was found", $byte;
}
$cp932 = utf8_to_cp932 (\&toHexNCR, $utf8_string);
$cp932 = unicode_to_cp932(\&toHexNCR, $unicode_string);
$cp932 = utf16le_to_cp932(\&toHexNCR, $utf16le_string);
UNICODE_CALLBACK
‚Ì•Ô‚è’l‚Í CP-932 ‚Æ‚µ‚Ä�³‚µ‚‚ ‚é•K—v‚ª‚ ‚è‚Ü‚·�B
UNICODE_OPTION
‚ð STRING
‚ÌŒã‚É‚¨‚‚±‚Æ‚ª‚Å‚«‚Ü‚·�B ‚±‚ê‚ç‚Í 'fg'
‚â 'gsf'
‚̂悤‚É‘g‚Ý�‡‚킹‚邱‚Æ‚à ‚Å‚«‚Ü‚·�i�‡�˜‚Í”CˆÓ‚Å‚·�j�B
'g' CP-932 ŠOŽš�iƒ†�[ƒU’è‹`•¶Žš�j[0xF040�`0xF9FC (95�`114‹æ)] ‚É
Unicode ‚Ì PUA [0xE000�`0xE757] ‚©‚ç•ÏŠ·‚µ‚Ü‚·�i1880 •¶Žš�j�B
's' CP-932 –¢’è‹`‚̈êƒoƒCƒg•¶Žš‚̑Ήž•t‚¯‚ð’ljÁ‚µ‚Ü‚·�B
U+0080 => 0x80, U+F8F0 => 0xA0,
U+F8F1 => 0xFD, U+F8F2 => 0xFE, U+F8F3 => 0xFF.
'f' Unicode ‚©‚ç CP-932 ‚Ö‚ÌŠô‚‚©‚Ì‘ã—p“I‚È•ÏŠ· (fallbacks) ‚ð
’ljÁ‚µ‚Ü‚·�Bƒ}ƒbƒsƒ“ƒO‚ª’ljÁ‚³‚ê‚镶Žš‚Í�Alatin-1 —̈æ
[U+00A0..U+00FF] ‚Ì‚¤‚¿‚ÌŠô‚‚©‚Ì•¶Žš‚Æ�A•½‰¼–¼‚̃” [U+3094,
•Ð‰¼–¼‚̃” (0x8394) ‚É‚È‚è‚Ü‚·] ‚Å‚·�B
utf8_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-8 ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
unicode_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
Unicode ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
‚±‚Ì Unicode ‚Í�APerl ‚Ì“à•”Œ`Ž®�iperlunicode ŽQ�Æ�j�B
SVf_UTF8
ƒtƒ‰ƒO•t‚«‚Å‚È‚¢�ê�‡�AISO 8859-1 (latin1) •¶Žš—ñ‚Æ‚µ‚Ä Unicode ‚É upgrade ‚³‚ê‚Ü‚·�B‚±‚ÌŠÖ�”‚Í Perl 5.6.1 ˆÈ�~�A‚©‚ XS ”Å‚Å‚Ì‚Ý’ñ‹Ÿ‚³‚ê‚Ü‚·�B
utf16_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-16 (
BOM
•t‚«‚Ü‚½‚Í–³‚µ) ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B utf16le_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-16LE ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
utf16be_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-16BE ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
utf32_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-32 (
BOM
•t‚«‚Ü‚½‚Í–³‚µ) ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B utf32le_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-32LE ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
utf32be_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])
-
UTF-32BE ‚ð CP-932 ‚É•ÏŠ·‚µ‚Ü‚·�B
—A�o
ƒfƒtƒHƒ‹ƒg:
cp932_to_utf8 utf8_to_cp932
cp932_to_utf16le utf16le_to_cp932
cp932_to_utf16be utf16be_to_cp932
cp932_to_unicode unicode_to_cp932 (XS ‚Ì‚Ý‚Å’ñ‹Ÿ‚³‚ê‚Ü‚·)
—v‹�‚³‚ê‚ê‚Î:
cp932_to_utf32le utf32le_to_cp932
cp932_to_utf32be utf32be_to_cp932
utf16_to_cp932 [*]
utf32_to_cp932 [*]
[*] ‚±‚ê‚ç‚ƑΉž‚·‚ׂ« cp932_to_utf16()
‚¨‚æ‚Ñ cp932_to_utf32()
‚Í–¢ŽÀ‘•‚Å‚·�B‚Ü‚¾ SJIS_CALLBACK
‚Ì•Ô‚è’l‚ɂ‚¢‚Ä‚à‚¤�‚µŒŸ“¢‚ª •K—v‚Æ�l‚¦‚Ä‚¢‚Ü‚·�B �i•¶Žš—ñ‚̘AŒ‹‚É BOM
‚Ì”FŽ¯‚Æ�ˆ—�‚ª•K—v‚Æ‚È‚é‚Å‚µ‚傤�B�j
’�ˆÓŽ–�€
‚±‚̃‚ƒWƒ…�[ƒ‹‚Ì Pure Perl ”ł̓�ƒCƒh•¶Žš�iperlunicode ‚ðŽQ�Æ�j‚ð —�‰ð‚Å‚«‚Ü‚¹‚ñ�B•K—v‚È‚ç�APerl 5.7 ˆÈ�~‚Ì utf8::decode
/utf8::encode
�iutf8 ‚ðŽQ�Æ�j‚ðŽg‚Á‚Ä‚‚¾‚³‚¢�B
�ìŽÒ
SADAHIRO Tomoyuki <SADAHIRO@cpan.org> �i’åœA ’m�s�j
Copyright(C) 2001-2006, 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.
ŽQ�lŽ‘—¿
- Microsoft PRB, Article ID: Q170559
-
Conversion Problem Between Shift-JIS and Unicode
- cp932 to Unicode table
-
http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit932.txt
http://www.microsoft.com/globaldev/reference/dbcs/932.htm
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 2:
Non-ASCII character seen before =encoding in '(–¼‘O)'. Assuming CP1252