[date:20121217]の検索結果


Unicodeの文字コード表によるとUTF-8の半角英数、全角英数、半角カナ、全角カナの文字コードは以下のようになるようです。 英数字の場合は半角と全角の文字がそれぞれ対応していますが、カタカナの場合は半角と全角では文字の数が違うようです。

半角数字:0 - 9
30 - 39

全角数字
EFBC90 - EFBC99
2バイト目まではEFBC

半角アルファベット大文字:A - Z
41 - 5A

全角アルファベット大文字:A - Z
EFBCA1 - EFBCBA
2バイト目まではEFBC

半角アルファベット小文字:a - z
61 - 7A

全角アルファベット小文字:a - z
EFBD80 - EFBD9A
2バイト目まではEFBD

半角カナ(JISカナ)
EFBDA1 - EFBE9F
1バイト目がEFで2バイト目、3バイト目がBDA1 - BE9Fの範囲

全角カタカナ
E38299 - E383BF
1バイト目がE3で2バイト目、3バイト目が82A1 - 83BFの範囲

Unicode対応 文字コード表
http://ash.jp/code/unitbl1.htm
http://ash.jp/code/unitbl21.htm

動作確認用にまずUTF-8の文字コードを表示するプログラムを作成します。

#!/usr/bin/perl

use strict;
use warnings;
use Encode;

my $hanAlnum = "ABCDE12345abcde";
my $zenAlnum = "ABCDE12345abcde";
my $hanKana = "アイウエオ";
my $zenKana = "アイウエオ";

print_charcode($hanAlnum);
print "\n";

print_charcode($zenAlnum);
print "\n";

print_charcode($hanKana);
print "\n";

print_charcode($zenKana);
print "\n";

# UTF-8でエンコードされた文字列の文字コードを表示する
sub print_charcode {
    my ($src) = @_;

    my $srclen = length($src);
    my $pos = 0;

    while ($pos < $srclen) {
        my $code = ord substr($src, $pos, 1); # 先頭のASCIIコード値を取得
        my $bytelen = _bytesize($code);
        my $srcchar = substr($src, $pos, $bytelen);
        my $codestr = sprintf("%2.2X ", $code);
        if ($bytelen > 1) {
            my $times = $bytelen - 1;
            for my $i (1 .. $times) {
                my $charcode = ord substr($src, $pos + $i, 1);
                $codestr .= sprintf("%2.2X ", $charcode);
            }
        }

        # Windowsで表示するのでcp932(シフトJIS)に変換
        Encode::from_to($srcchar, 'utf8', 'cp932');
        print "$srcchar : $codestr\n";
        $pos += $bytelen;
    }
}

# 文字のバイト長を求める
sub _bytesize {
    my $code = shift;
    my $size = 1;
    if (0x80 & $code) { # 1バイト文字以外
        $code <<= 1;
        for my $i (2 .. 8) {
            $size++;
            $code <<= 1;
            last if (!(0x80 & $code));
        }
    }
    return $size;
}

Perl Hacks ―プロが教えるテクニック & ツール101選
オライリー・ジャパン 著者:chromatic,Damian Conway,Curtis "Ovid" Poe


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2248] Posted by kagahiro at 2012/12/17 00:25:00
0 point | Link (1) | Trackback (0) | Comment (0)

  1  


アクセスランキング

今日のアクセスランキング TOP 10

  1. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (3 PV)
  2. Node.js専用クラウドサービス「Node Ninja」 (2 PV)
  3. [映画]「スター・ウォーズ エピソード8/最後のジェダイ」予告編公開 ジェダイは滅びる (2 PV)
  4. YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (2 PV)
  5. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (2 PV)
  6. Zoho Discussions (日本語版) (1 PV)
  7. InoPedia(イノペディア) (1 PV)
  8. アフィリエイト 書籍 (1 PV)
  9. PRISM(プリズム) (1 PV)
  10. ソフトバンクがボーダフォンの日本法人を買収 (1 PV)

今月のアクセスランキング TOP 10

  1. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (77 PV)
  2. 2%のインフレターゲットとは (44 PV)
  3. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (39 PV)
  4. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (39 PV)
  5. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (37 PV)
  6. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (37 PV)
  7. [PR]noteで販売している自作EAの一覧 (37 PV)
  8. MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (34 PV)
  9. NEKONEKO FREEの配布は終了しました (33 PV)
  10. ドル円(USDJPY)で爆益を狙うハイリスクハイリターンのMT4向けナンピンマーチンEA「Hyper Dollar」 (32 PV)

アクセス統計

ディレクトリ

関連サイト