AozoraBunko-Checkerkun
view release on metacpan or search on metacpan
author/cp932-utf8.pl view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use open OUT => qw/:utf8 :std/;
use feature qw/say/;
use Encode qw//;
my %CP932;
my %SJIS;
my $ENC_CP932 = Encode::find_encoding("CP932");
my $ENC_SJIS = Encode::find_encoding("Shift_JIS");
for my $dec ( hex('0') .. hex('10FFFF') ) # ãµãã²ã¼ãæåãå«ãã§ãã
{
my $point = sprintf("U+%06X", $dec);
my $char = chr $dec;
#say $point;
$CP932{$point} = $char unless is_gaiji_cp932($char);
$SJIS{$point} = $char unless is_gaiji_sjis($char);
}
say "CP932 ã«å¤æå¯è½ãªæåæ°ï¼" . scalar keys %CP932; # 9485
say "SJIS ã«å¤æå¯è½ãªæåæ°ï¼" . scalar keys %SJIS; # 7070
# Unicode ã®æåã®ãã¡ãCP932ã«å¤æå¯è½ ã§ Shift_JIS ã«å¤æå¯è½ã§ãªãæåãæ±ãã
my %CP932_NOT_SJIS;
for my $point (keys %CP932)
{
if ( ! exists $SJIS{$point} )
{
$CP932_NOT_SJIS{$point} = $CP932{$point};
}
}
say "CP932 ã«å¤æå¯è½ã§ Shift_JIS ã«å¤æå¯è½ã§ãªãæåæ°ï¼" . scalar keys %CP932_NOT_SJIS;
# Unicode ã®æåã®ãã¡ãShift-JIS 夿å¯è½ã§ CP932 ã«å¤æå¯è½ã§ãªãæåãæ±ãã
my %SJIS_NOT_CP932;
for my $point (keys %SJIS)
{
if ( ! exists $CP932{$point} )
{
$SJIS_NOT_CP932{$point} = $SJIS{$point}
}
}
say "Shift_JIS ã«å¤æå¯è½ã§ CP932 ã§å¤æå¯è½ã§ãªãæåæ°ï¼" . scalar keys %SJIS_NOT_CP932;
# Unicode ã®æåã®ãã¡ãCP932 ãã¤SJIS 㯠7067æåã
say "CP932 ã«å¤æå¯è½ã§ Shift_JIS ã«å¤æå¯è½ã§ãªãï¼";
for my $point (sort keys %CP932_NOT_SJIS)
{
say "$pointï¼ $CP932_NOT_SJIS{$point}";
}
say "Shift_JIS ã«å¤æå¯è½ã§ CP932 ã«å¤æå¯è½ã§ãªãï¼";
for my $point (sort keys %SJIS_NOT_CP932)
{
( run in 0.773 second using v1.01-cache-2.11-cpan-ceb78f64989 )