- PR -

携帯での絵文字について

1
投稿者投稿内容
ねっく
会議室デビュー日: 2004/07/21
投稿数: 4
投稿日時: 2004-10-05 16:10
こんにちは、.net初心者 ねっくです。
.net+MMITを使用して、携帯サイトを開発しております。

入力エリア(テキストボックス)での入力値チェックの際に、
絵文字を不可としたいのですがどのようにすればよろしいのでしょうか?

いろいろと検索しているのですが、なかなか見つからない状況です。
宜しくお願い致します。

[絵文字判定]
http://www.sound-uz.jp/php/tips/mobile.html
上記のサイトでは、記載されていたのですがPHPということで、
私の力不足でちょっと理解できないです。
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2004-10-05 17:04
こんにちは。

何がわからないのか、いまいちわからないのですが。
ねっくさんが紹介されているページを読んでみましたが、絵文字の条件はPHPではなく日本語で書かれてますよね。
例えばi-modeの場合
引用:

i-modeの絵文字は、1バイト目が "\xF8" 又は "\xF9"、2バイト目が "\x40" から "\xFC"の間に点在していますので、文字列中の絵文字を判別するには、1バイトずつ文字コードを確認する必要があります。



この条件を元に入力チェックをすれば良いのだと思いますが。

あと、PHPのソースですが、実は私はPHPのソースを見るのは初めてですが、
コード:
    while($n <= $len)
    {
        $ch1 = $str[$n];
        $ch2 = $str[$n+1];
        if(($ch1 == 0xF8) && (0x9F <= $ch2) && ($ch2 <= 0xFC))
            return true;
        elseif(($ch1 == 0xF9) &&
            ((0x40 <= $ch2) && ($ch2 <= 0x49) ||
             (0x50 <= $ch2) && ($ch2 <= 0x52) ||
             (0x55 <= $ch2) && ($ch2 <= 0x57) ||
             (0x5B <= $ch2) && ($ch2 <= 0x5E) ||
             (0x72 <= $ch2) && ($ch2 <= 0x7E) ||
             (0x80 <= $ch2) && ($ch2 <= 0xFC)))
            return true;
        $n++;
    }



なんらかの言語を知っていれば分かるような単純なソースだと思いますよ。本当に読む気があれば読めると思うのですが。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2004-10-05 18:34
引用:

.net+MMITを使用して、携帯サイトを開発しております。

入力エリア(テキストボックス)での入力値チェックの際に、
絵文字を不可としたいのですがどのようにすればよろしいのでしょうか?
足でちょっと理解できないです。


携帯向けサイトを作るのに、大本の技術資料は読んでないのか?
http://www.nttdocomo.co.jp/p_s/imode/make/emoji/index.html

各形態事業者ごとに仕様が異なるから、他の事業者のは自分で探してみてくれ。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-10-06 10:32
考え方は、例えば「ひらがなをはじく」とかと同様で、該当する文字コードを
はじけばいいと思うのですがキャリアごとにコードが違いますよね。
もしかしたら、受け入れたい文字だけ受け入れる、って考えたほうが楽かも
しれないですね。

携帯サイトなのでrequestEncoding、responseEncodingともshift-jisでやってると
思います。で、.netのstring型はunicodeですね。気になるのは、shift-jisとして
表されない文字が飛んできたときの挙動です。
マルチバイトで1文字のままなのか、1バイトづつ拾って2文字になるのか(それは
結局byte配列にしなきゃいけないから関係ないか・・)
#混乱してきましたが、私の思い過ごしでなければ思いのほか厄介な気がします。
1

スキルアップ/キャリアアップ(JOB@IT)