Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

絵文字の判別方法

はじめまして。

携帯の絵文字が入力されたときの判定方法として、3キャリアの絵文字は全てUnicodeのPrivate Use Areaとなるため、Private Use Areaであるかを判断する方法をとったのですが、softbannkの一部の絵文字だけ判断できません。

String input = ....;
for(char c : input.toCharArray()){
    if(Character.UnicodeBlock.of(c) ==
            Caracter.UnicodeBlock.PRIVATE_USE_AREA){
        System.out.println("絵文字〜");
    }
}

ご教授下さい(m__m)

4

回答

83140

閲覧

4件の回答

評価

0

SoftBankの絵文字はややこしそうですね。
http://ke-tai.org/blog/2007/11/10/sbemojiregex/
キャリア識別後にSoftBankのみ別処理が必要になるでしょう。
上のページにある「ソフトバンク 技術資料」のリンクから仕様を確認したほうがよさそうです。
既に誰か便利な物を作っているかもしれませんので探してみるのも良いかもしれません。

評価

0

>softbannkの一部の絵文字だけ判断できません

以下のサイトのどの文字がFALSEになるのでしょうか。
http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php

試してみましたが全てPUAと判断されるようです。

[ ソースコード ]
  int start = 0xE000;
//  int end   = 0xE537;
  int end   = 0xEFFF;
  int cnt_notPUA = 0;

  for(int i = start;i<=end;i++){
   if(Character.UnicodeBlock.of((char)i) != Character.UnicodeBlock.PRIVATE_USE_AREA){
    System.out.print(Integer.toHexString(i) + " ");
    cnt_notPUA++;
    if(cnt_notPUA%5 == 0) System.out.println();
   }
  }
  System.out.println((end - start +1) + "文字中");
  System.out.println(cnt_notPUA + "文字がPUAではありません");
 }

[ 実行結果 ]
4096文字中
0文字がPUAではありません


実際にFALSEとなる文字のコードを表示させてみてはいかがでしょう。

評価

0

>http://ke-tai.org/blog/2007/11/10/sbemojiregex/

そうでしたか。
失礼しました。

評価

0

お返事遅れて申し訳ございません。

丁寧にありがとうございます。
意見や参考URLをみながら、調査してやってみます。

またわからないことがあればご質問します。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。