[4]の検索結果


Perlのlength関数ではバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。

ブログなどのアプリケーションのテキスト処理ではそれでは不都合な場合もことも多いので、半角英数も全角文字(漢字、ひらがな、カタカナなど) も1文字としてカウントする関数を作成することにします。

UTF-8では、

1バイト目の先頭ビットが0の場合は1バイト文字
1バイト目の先頭から3ビットが110の場合は2バイト文字
1バイト目の先頭から4ビットが1110の場合は3バイト文字
1バイト目の先頭から5ビットが11110の場合は4バイト文字
1バイト目の先頭から6ビットが111110の場合は5バイト文字
1バイト目の先頭から7ビットが1111110の場合は2バイト文字

という仕様ですので、1バイト目のビットの状態を調べることによって、その文字が何バイトかを調べることができます。

以下のコードでは、この仕様にもとづいて全角文字を含む文字列の文字数を取得しています。

#!/usr/bin/perl

use strict;
use warnings;

my $testAscii = "ABCDEFG";
my $testHira  = "あいうえお";
my $testKata  = "アイウエ";
my $testKanji = "愛々木";
my $testAll = "ABCDEFGあいうえおアイウエオ愛夢佐々木";

print "length($testAscii) = ".length($testAscii), "\n";
print "strlen_utf8($testAscii) = ".strlen_utf8($testAscii), "\n";

print "length($testHira) = ".length($testHira), "\n";
print "strlen_utf8($testHira) = ".strlen_utf8($testHira), "\n";

print "length($testKata) = ".length($testKata), "\n";
print "strlen_utf8($testKata) = ".strlen_utf8($testKata), "\n";

print "length($testKanji) = ".length($testKanji), "\n";
print "strlen_utf8($testKanji) = ".strlen_utf8($testKanji), "\n";

print "length($testAll) = ".length($testAll), "\n";
print "strlen_utf8($testAll) = ".strlen_utf8($testAll), "\n";

exit;

# UTF-8でエンコードされた文字列の文字数を取得する。
sub strlen_utf8 {
    my ($text) = @_;

    my $textlen = length($text);
    my $pos = 0;
    my $count = 0;

    while ($pos < $textlen) {
        my $code = ord substr($text, $pos, 1); # 先頭のASCIIコード値を取得
        my $bytelen = _bytesize($code);
        $pos += $bytelen;
        $count++; # 文字数をカウント
    }

    return $count;
}

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

strlen_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、 _bytesize関数を呼び出して文字のバイト数を求め、1文字分の処理を行うたびに文字数をカウントアップしています。

_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し 戻り値として返しています。

ゼロからわかる Perl言語超入門
技術評論社 著者:高橋 順子


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

[2243] Posted by kagahiro at 2012/12/12 11:56:21
1 point | Link (3) | Trackback (0) | Comment (1)

iPhone 5(アイフォーンファイブ)は、米アップルコンピュータ社が製造販売しているカメラ付きのスマートフォン「iPhone」の最新モデル。アルミニウムのボディに4インチのRetinaディスプレイが搭載され、A6チップによりチップの性能はA5チップの2倍になっている。

たったの7.6ミリのとこれまでのiPhoneで最も薄く、軽量化され、通信速度も4G LTEに対応し高速になったことから都市部在住のアップル信者の熱烈な指示を受ける一方、「パチンコガンダム駅」や「餃子の王将駅」といったでたらめな駅名が表示されるなど世界中の地図が正しく表示されない問題や撮影した写真に紫色の「霞み」や「揺らぎ」が出現するという問題が指摘されていることもあって、まだ買うべきでないという人も存在しその評価は分かれている。

ちなみに、iPhone 5は日本ではソフトバンクとauがの携帯通信網が利用できるが、auの方が通信速度が早いにもかかわらず、ソフトバンクの利用者のほうが多いらしい。

アップル - iPhone 5 - これまでで最も薄く、軽く、速いiPhoneです。
iPhone 5│ソフトバンクモバイル
iPhone 5 | au
まだ「iPhone 5」を買わない7つの理由。
iPhone 5は機種変、MNP、結局どれが得なの?
ナゾノスイッチ : iOS6のせいで世界中の地図がぐっちゃぐちゃワロタ
アップル、iPhone 5カメラの「パープルヘイズ」問題に公式コメント

[2230] Posted by kagahiro at 2012/10/19 10:31:01
0 point | Link (3) | Trackback (0) | Comment (0)

GMOインターネットが日本マイクロソフトが提携し、アプリケーション開発者向けに、仮想デスクトップ(GMOインターネットが有するデータセンター内のサーバー上に仮想的に構築したWindowsデスクトップに自宅のPCやスマートフォンなど外部の端末から接続できるリモートデスクトップ環境、開発環境ツールは最新の Visual Studio Professional 2012が提供される)を利用したクラウド型開発環境「お名前.com デスクトップクラウド for Windowsアプリ」の提供を開始した。

利用料金は、初期費用:2,100円(税込)、月額費用:6,720円~(税込)。サービス提供開始記念キャンペーンとして、2012年10月4日 正午から2012年12月28日正午まで申し込みしたユーザーを対象に、初期費用、及び月額費用最大3ヶ月間を無料とするキャンペーンが実施される。

「お名前.com デスクトップクラウド for Windowsアプリ」は、開発者がWindows 8 やスマートフォンなどの様々なデバイスに対応したアプリケーションを開発する際、開発用にPC環境やソフトウェアを準備することなく、コストを抑えてすぐに開発を始められるクラウド型の開発環境で、Windows アプリケーション開発者だけでなく、AndroidやiOSなど他のプラットフォームでアプリケーション開発者なども、Windows 8の新しいユーザーインターフェイスやマルチタッチなどを活用してアプリケーションを容易に開発できる。また、クラウド型の開発環境であることから、インターネットにアクセスできる環境であれば、MacなどWindows以外の端末からもいつでもどこでも同じ開発環境を利用できるという。

GMOインターネットと日本マイクロソフトが提携し、Windows(R)アプリケーションのクラウド型開発環境を世界で初めて提供
for Windowsアプリプラン | お名前.comデスクトップクラウド

Windows Phoneアプリ開発入門
秀和システム 著者:和田 健司


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


[2228] Posted by kagahiro at 2012/10/05 10:07:00
0 point | Link (3) | Trackback (0) | Comment (0)

GoogleがAndroid 4.1を搭載した7インチ液晶タブレット端末「Nexus 7」の販売を開始、オンラインストアのGoogle Playで購入できる。日本で購入できるのは16GBモデルのみとなっており価格は1万9800円から。仕様は、7イ...
[2226] Posted by kagahiro at 2012/09/27 12:14:51
0 point | Link (3) | Trackback (0) | Comment (0)

USTREAM Asia株式会社がライブ映像配信サービス「USTREAM(ユーストリーム)」の日本語サイトを2012年9月4日にリニューアルすると発表した。新しいサービスサイトでは、見たい番組が見つかりやすくなるように番組一覧...
[2221] Posted by kagahiro at 2012/08/31 09:58:29
0 point | Link (1) | Trackback (0) | Comment (0)

Google Compute Engine は、Googleが2012年6月28日に発表したGoogleのデータセンター内でLinuxバーチャルマシン(VM)が実行できるIaaSで、既に限定的なプレビュー版としてサービスを開始している。VMは1/2/4/8バーチ...
[2218] Posted by kagahiro at 2012/06/29 13:31:59
0 point | Link (1) | Trackback (0) | Comment (0)

なるほど、これは非常に参考になりますね。ということで、海外の掲示板でよく見かける、特徴的なネットスラングを色々調べてみたので簡単にまとめ。例文はすべてmyanimelistという海外のアニメファンが集まる掲示板の...
[2201] Posted by kagahiro at 2012/05/30 17:49:40
0 point | Link (0) | Trackback (0) | Comment (0)

ペンギン・アップデートではリンク絡みのSEOが標的にされたらしい。確かに、そんな感じがしないでもない。こちらの記事では、ペンギン・アップデートが標的にしたウェブスパムのタイプと対処方法を分析している。次の...
[2188] Posted by kagahiro at 2012/05/19 12:13:54
0 point | Link (0) | Trackback (0) | Comment (0)

4月に検察順位が大きく変わったサイトとかあるのでしょうか?月の一週目の金曜日には、グーグルが検索の品質に関する最新情報を提供することになっている。そして、このルールに則り、グーグルは ? 私達の期待を裏切...
[2180] Posted by kagahiro at 2012/05/08 10:22:13
0 point | Link (0) | Trackback (0) | Comment (0)

CGI環境でPHPを動作させているサイトには、リモートからスクリプト実行を許してしまう脆弱性があります。PHP.netから提供されている修正リリース(PHP 5.3.12 / PHP 5.4.2)は不完全なため、該当するサイトは至急回避策...
[2178] Posted by kagahiro at 2012/05/07 10:34:30
0 point | Link (0) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  20 21 22 23 24  次へ >


アクセスランキング

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
  3. ニフティ、ブログにアプリを貼り付けることができるサービスを開始 (2 PV)
  4. 衆議院インターネット審議中継 (2 PV)
  5. 「やっぱりダメでした」、「Twitpic」10月25にサービス終了 (1 PV)
  6. [将棋]動画配信やライブ配信を行っているおすすめの将棋系ユーチューバー(YouTuber)チャンネル (1 PV)
  7. メルクマニュアル 日本語版 (1 PV)
  8. 「さくらのレンタルサーバ」で無料SSL証明書「Let's Encrypt」が利用可能に (1 PV)
  9. C言語 (1 PV)
  10. Webメールのアドレス帳から勝手に招待状をばら撒くSNS「Tagged」 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (30 PV)
  2. FC2まとめ (15 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (10 PV)
  4. StartPage(スタートページ) - 匿名検索エンジン (8 PV)
  5. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  6. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  7. 「Kindle for the Web」 (5 PV)
  8. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (5 PV)
  9. 2ちゃんねる(2ch) (5 PV)
  10. 電通が2ちゃんねるを監視 「電通バズリサーチ(Dentsu Buzz Research)」 (5 PV)

アクセス統計

ディレクトリ

関連サイト