アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

絵文字データベースと相互変換マッピングデータベースのJSONファイルを公開します。

こんにちは、亀本です。

===
追記:みなさんいっぱいはてブしてくれたようなので、せっかくなのでちょっと宣伝です(^^;
この絵文字データベースは、携帯専用イベント支援サイト「あつまろ☆ねっと」というサイトの、メーリングリスト連動型の掲示板を構築していく過程で出来上がったものです。
「あつまろ☆ねっと」は現在ベータ版ですが、ぜひ利用してやってください<(。_。)>ペコリ
===

携帯サイト作成の際に頭を悩ます最初の関門が、絵文字の取り扱いだと思います。
各社とも絵文字のデータ形式や相互変換表などを公開してくれていますが、取り扱いやすいデータ形式で統一的にまとめてある情報がなかなか存在しなかったりして、車輪の再発明が非常に多い分野ではないかな、という気がしました。

そこで、どうせなら利用しやすいようにきっちり整理しようと思い、各種文字コードや表示形式を統括的に扱う絵文字データと、それらの絵文字を置き換えるための相互変換マッピングデータを作成しましたので、これらのJSONファイルを公開します。

データファイル:pictogram.tar.gz
pictogram-1.1.tar.gz
コメント欄にてezweb_emoji.jsonの4100行にエラーがあるとご指摘頂き、修正いたしました。ありがとうございます。

ちなみに形式がJSONなのは単にYAMLよりJSONの方がPHPで扱う時に手っ取り早かったからです。
まぁそこはYAML is JSONってことで勘弁してください。インデントはちゃんとしてあります。

これに含まれるファイルは


docomo_emoji.json
ezweb_emoji.json
softbank_emoji.json

docomo_convert.json
ezweb_convert.json
softbank_convert.json

の6つです。

それぞれのデータ形式について簡単に説明すると、


{
	"<carrier_name>" : {
		"<number1>" : {
			// data1....
		},
		"<number2>" : {
			// data2....
		},
・
・
}

という風に各キャリア名のオブジェクト内に絵文字番号をキーとする絵文字オブジェクトが格納されています。
それぞれのdataの中身は以下のようになっています。


・docomo_emoji.json
number : 絵文字番号
sjis : Shift_JISコード(hex)
sjis-10 : Shift_JISコード(dec)
unicode : Unicodeコード(hex)
title : 絵文字の名称
color : 絵文字の色
utf-8 : UTF-8バイナリコード(hex)




・ezweb_emoji.json
number : 絵文字番号
name : 絵文字の英字名称
title : 絵文字の名称
sjis : Shift_JISコード(hex)
unicode : Unicode(hex)
jis-email : Eメール送出用JISコード(hex)
sjis-email : 上記に対応したShift_JISコード(hex)
utf-8 : UTF-8のバイナリコード(hex)




・softbank_emoji.json
number : 絵文字番号
unicode : Unicode(hex)
webcode : Webコード中の制御部分を除いた、3~4バイト目のコード(hex)
sjis: Shift_JISコード(hex)
utf-8 : UTF-8バイナリコード(hex)




・<carrier_name>_convert.json
docomo : 対応するdocomoの絵文字番号/代替文字
ezweb : 対応するezwebの絵文字番号/代替文字
softbank : 対応するsoftbankの絵文字番号/代替文字


利用する場合には、上記の各コードをpackしてバイナリにするなり、テキスト形式として記述するのに使うなり、適切な処理をかけて利用してください。

上記の仕様のうち、ezweb_emoji.jsonに格納してあるUTF-8のバイナリコードは、id:miyagawa氏の調査により発覚した機械的マッピングによるものです。

絵文字データは各キャリアが発表しているものを元に、独自調査やグーグル先生の教え(笑)によって集めた情報を加えて、隠し絵文字などもできうる限り補完するようにしました。

<carrier_name>_convert.json内で、1つの絵文字を複数に対してマッピングしている場合(docomoの拡23など)には、それら複数の絵文字番号を;(セミコロン)をセパレータとして合わせて格納しています。
このマッピングデータを作成する上で、ウノウラボのharukさんが公開なさっている絵文字の相互変換リストをベースとして利用させていただきました。この場を借りて、感謝申し上げます。

絵文字番号の規則は、それぞれ公式ページの絵文字と照らし合わせる形で


・docomo
基本絵文字:1~176
拡張絵文字:1001~1076
・ezweb
絵文字番号:1~828
・softbank
PAGE1:1~ 90
PAGE2:101~190
PAGE3:201~290
PAGE4:301~377
PAGE5:401~476
PAGE6:501~562

となっています(隠し絵文字含む)。

もちろん、各データは演算により他のデータから算出可能な物同士であることが多いですが、それらの重複は利用時の容易さを優先してあえて重複させてあります。


このデータを作成するにあたり参考にさせて頂いたサイトやデータは以下の通りです。
# 無論学習の上ではその他様々なサイトを参考にさせていただきましたが、その中でもデータ作成に直結する情報を紹介させていただきました。

もし、このデータを利用なさる場合には、特に個人サイトなどであればブクマするとかはてスタつけるとかしてあげてくれると自分としても少し貢献できて報われます。

データの利用に関して特に制限事項はありませんので、ご自由にお使いください。
このデータが皆さんのお役に立てば幸いです。

※なお、このデータは自分が独自に作成したものであり、公式情報でもないし内容の正確性を保証するものでもありません。
利用なさる場合には、各個人の責任のもとでご利用ください。

======

個人サイト等非公式情報:

ウノウラボ : 絵文字の相互変換リスト
http://labs.unoh.net/2007/02/post_65.html
相互変換のマッピングデータを作成する際のベースとして利用させていただきました。

・My First HDML : EZWebの絵文字
http://wap2.jp/images/icons/
Ezwebの隠し絵文字や英字名称などの情報は、こちらを参考にさせていただきました。

Bulknews::Subtech : KDDI/AUutf-8のHTMLフォームから送られてくる絵文字コード
http://subtech.g.hatena.ne.jp/miyagawa/20071112/1194865208
Ezwebの絵文字UTF-8マッピングの参考にさせていただきました。


公式情報:

・作ろうiモードコンテンツ:絵文字記述方法
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/howto/index.html
・絵文字変換機能
http://www.nttdocomo.co.jp/service/mail/imode_mail/emoji_convert/index.html

KDDI au:技術情報 > 絵文字
http://www.au.kddi.com/ezfactory/tec/spec/3.html

ソフトバンク:絵文字一覧
http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php
SoftBankから他社ケータイへの絵文字変換
http://mb.softbank.jp/mb/service/3G/mail/pictogram/