ShiftJIS-CP932-MapUTF

 view release on metacpan or  search on metacpan

MapUTF/Japanese.pod  view on Meta::CPAN

ƒR[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚݂̂ªŽg‚¦‚Ü‚·B
‚»‚̃R[ƒhƒŠƒtƒ@ƒŒƒ“ƒX‚̕Ԃè’l‚ª
ƒ}ƒbƒsƒ“ƒO‚̂Ȃ¢•¶Žš‚Ì‘ã‚í‚è‚É‘}“ü‚³‚ê‚Ü‚·B

ƒR[ƒhƒŠƒtƒ@ƒŒƒ“ƒX C<UNICODE_CALLBACK> ‚́A
ˆêŒÂˆÈã‚̈ø”‚ƂƂà‚ɌĂяo‚³‚ê‚Ü‚·Bƒ}ƒbƒsƒ“ƒO‚̂Ȃ¢•¶Žš‚ª
•”•ª“I•¶Žši•s³‚ȃoƒCƒgj‚̏ꍇA‘æˆêˆø”‚Í–¢’è‹`’liC<undef>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);

C<UNICODE_CALLBACK> ‚̕Ԃè’l‚Í CP-932 ‚Æ‚µ‚Đ³‚µ‚­‚ ‚é•K—v‚ª‚ ‚è‚Ü‚·B

C<UNICODE_OPTION> ‚ð C<STRING> ‚ÌŒã‚É‚¨‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
‚±‚ê‚ç‚Í C<'fg'> ‚â C<'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

=over 4

=item C<utf8_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-8 ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<unicode_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

Unicode ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

‚±‚Ì B<Unicode> ‚́APerl ‚Ì“à•”Œ`Ž®iF<perlunicode> ŽQÆjB
C<SVf_UTF8> ƒtƒ‰ƒO•t‚«‚łȂ¢ê‡AISO 8859-1 (latin1) •¶Žš—ñ‚Æ‚µ‚Ä
Unicode ‚É upgrade ‚³‚ê‚Ü‚·B

B<‚±‚̊֐”‚Í Perl 5.6.1 ˆÈ~A‚©‚ XS ”łł̂ݒñ‹Ÿ‚³‚ê‚Ü‚·B>

=item C<utf16_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-16 (C<BOM> •t‚«‚Ü‚½‚Í–³‚µ) ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<utf16le_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-16LE ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<utf16be_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-16BE ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<utf32_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-32 (C<BOM> •t‚«‚Ü‚½‚Í–³‚µ) ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<utf32le_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-32LE ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=item C<utf32be_to_cp932([UNICODE_CALLBACK,] STRING [, UNICODE_OPTION])>

UTF-32BE ‚ð CP-932 ‚ɕϊ·‚µ‚Ü‚·B

=back

=head2 —Ao

B<ƒ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 ‚݂̂Œñ‹Ÿ‚³‚ê‚Ü‚·)

B<—v‹‚³‚ê‚ê‚Î:>

    cp932_to_utf32le  utf32le_to_cp932
    cp932_to_utf32be  utf32be_to_cp932
                      utf16_to_cp932 [*]
                      utf32_to_cp932 [*]

[*] ‚±‚ê‚ç‚Æ‘Ήž‚·‚ׂ« C<cp932_to_utf16()> ‚¨‚æ‚Ñ C<cp932_to_utf32()>
‚Í–¢ŽÀ‘•‚Å‚·B‚Ü‚¾ C<SJIS_CALLBACK> ‚̕Ԃè’l‚ɂ‚¢‚Ä‚à‚¤­‚µŒŸ“¢‚ª
•K—v‚ƍl‚¦‚Ä‚¢‚Ü‚·B
i•¶Žš—ñ‚̘AŒ‹‚É C<BOM> ‚Ì”Fޝ‚Əˆ—‚ª•K—v‚ƂȂé‚Å‚µ‚傤Bj

=head1 ’ˆÓŽ–€

‚±‚̃‚ƒWƒ…[ƒ‹‚Ì Pure Perl ”ł̓ƒCƒh•¶ŽšiF<perlunicode> ‚ðŽQÆj‚ð
—‰ð‚Å‚«‚Ü‚¹‚ñB•K—v‚È‚çAPerl 5.7 ˆÈ~‚Ì
C<utf8::decode>/C<utf8::encode>iF<utf8> ‚ðŽQÆj‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B

=head1 ìŽÒ

SADAHIRO Tomoyuki <SADAHIRO@cpan.org> i’åœA ’msj

Copyright(C) 2001-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.

=head1 ŽQlŽ‘—¿

=over 4

=item Microsoft PRB, Article ID: Q170559

Conversion Problem Between Shift-JIS and Unicode

=item 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

=back

=cut



( run in 0.387 second using v1.01-cache-2.11-cpan-39bf76dae61 )