絵文字変換ライブラリ

JAVAでの携帯サイト作成時や、携帯メール配信時に使用している、絵文字変換ライブラリですが問題なさそうなので、置いておきます。
今のところ、以下のことができます。

機能概要

・絵文字バイナリコードの削除
・絵文字バイナリコード→独自コードへの変換
・独自コード→絵文字バイナリコードへの変換
・独自コードは"[:0000:]"のようなフォーマット

サポート状況

・shift-jis、utf-8をサポート(euc-jpは動作未確認)
docomo絵文字、AU絵文字、softbank絵文字対応
AUのEメール送出用JISコードに対応したShift-JISコード未対応
スマートフォン(IPHONE,ANDROID)はsoftbank絵文字と同一

クラス概要

Emoji.class
 絵文字変換クラス。

EmojiUtility
 絵文字変換ユーティリティ。Emoji.classのインスタンス文字コードごとにキャッシュする。
 このクラスのみで、操作は可能です。

CodeToEmojiOutputStream
 Emoji.classをOutputStreamで使用するためのクラス。独自コード→絵文字の変換を行う。

EmojiToCodeOutputStream
 Emoji.classをOutputStreamで使用するためのクラス。絵文字→独自コードの変換を行う。

ファイル

・jarファイル
mb_emoji.jar

・ソース
mb_emoji.zip

使い方

・全絵文字表示

Emoji emoji = new Emoji(Charset.forName("utf8"));
FileOutputStream fo = new FileOutputStream(new File("emoji_all.txt"));

emoji.writeTo(fo, Emoji.Mode.DOCOMO);
emoji.writeTo(fo, Emoji.Mode.AU);
emoji.writeTo(fo, Emoji.Mode.SOFTBANK);

fo.close();


・絵文字バイナリコードの削除(shift-jisの場合)

BufferedInputStream in = new BufferedInputStream(new FileInputStream("input_text.txt"));
OutputStream out = EmojiUtility.encode(new FileOutputStream("output_text.txt"), "shift-jis", Emoji.Mode.DELETE);

byte[] buf = new byte[2048];
int len = 0;

while ((len = in.read(buf)) != -1) {
    out.write(buf, 0, len);
}

in.close();
out.close();


DOCOMO絵文字バイナリコード→独自コードへの変換(utf-8の場合)

BufferedInputStream in = new BufferedInputStream(new FileInputStream("input_text.txt"));
OutputStream out = EmojiUtility.encode(new FileOutputStream("output_text.txt"), "utf-8", Emoji.Mode.DOCOMO);

byte[] buf = new byte[2048];
int len = 0;

while ((len = in.read(buf)) != -1) {
    out.write(buf, 0, len);
}

in.close();
out.close();


・独自コード→DOCOMO絵文字バイナリコードへの変換(shift-jisの場合)

BufferedInputStream in = new BufferedInputStream(new FileInputStream("input_text.txt"));
OutputStream out = EmojiUtility.decode(new FileOutputStream("output_text.txt"), "shift-jis", Emoji.Mode.DOCOMO);

byte[] buf = new byte[2048];
int len = 0;

while ((len = in.read(buf)) != -1) {
    out.write(buf, 0, len);
}

in.close();
out.close();


SOFTBANK絵文字→DOCOMO絵文字

OutputStream to = EmojiUtility.decode(System.out, "shift-jis", Emoji.Mode.DOCOMO);	// DOCOMO絵文字へ
OutputStream from = EmojiUtility.encode(to, "shift-jis", Emoji.Mode.SOFTBANK);		// SOFTBANK絵文字から

from.write(buf, 0, len);


こんな感じで使えると思います。
バグや要望などありましたら連絡ください。