mbstring(libmbfl)で携帯絵文字サポート:Unicode 6.0に含まれない文字

絵文字サポートに関する続きです。

当初、Unicode 6.0とのマッピングが定義されない文字(iモードのロゴなど)は、使用頻度も低いと思われるため、サポートしない方針でしたが、リクエスト頂いたため、Unicode 6.0の私用面との相互変換を定義することにしました。従来より携帯電話の絵文字が利用するBMPのPUAを使用する案もありますが、ここでは、次の理由によりGoogleがemoji4unicodeで定義している私用面(FXXXX)へのマッピングを使用することにしました。

1.BMPの私用域(PUA)は他の外字と干渉する可能性が比較的高い。
2.Googleマッピングはロゴを比較的近くに集めているため、定義が容易。
3.Googleマッピングはそれなりに認知されている。

具体的な各キャリアとのマッピングを以下に示します。
このマッピング追加によりUnicode 6.0の定義も含めて全ての絵文字が使用可能となっています。

## Emoji Compatibility Symbol
# Unicode;DoComo;KDDI;Softbank
FE4C5;;;FBAA
FE82D;F986;F748;
FE83C;;F7A3;
FEB89;;F7D2;
FEE10;F975;;
FEE11;F976;;
FEE12;F978;;
FEE13;F979;;
FEE14;F9B1;;
FEE15;F9B2;;
FEE16;F94A;;
FEE17;F94B;;
FEE18;F94C;;
FEE19;F94D;;
FEE1A;F94E;;
FEE1B;F94F;;
FEE1C;F953;;
FEE1D;F954;;
FEE1E;F958;;
FEE1F;F959;;
FEE20;F95A;;
FEE21;F95F;;
FEE22;F960;;
FEE23;F961;;
FEE24;F962;;
FEE25;F963;;
FEE26;F964;;
FEE27;F965;;
FEE28;F966;;
FEE29;F967;;
FEE2A;F968;;
FEE2B;F969;;
FEE2C;F96A;;
FEE2D;F96B;;
FEE2E;F96C;;
FEE2F;F96D;;
FEE30;F96E;;
FEE31;F96F;;
FEE32;F970;;
FEE33;F971;;
FEE40;;F794;
FEE41;;F7CF;
FEE42;;F370;
FEE43;;F478;
FEE44;;F486;
FEE45;;F48E;
FEE46;;F48F;
FEE47;;F490;
FEE48;;F491;
FEE49;;F492;
FEE4A;;F493;
FEE70;;;FBD8
FEE71;;;FBD9
FEE72;;;FBDA
FEE73;;;FBDB
FEE74;;;FBDC
FEE75;;;FBDD
FEE76;;;FBDE
FEE77;;;F7F4
FEE78;;;F7F5
FEE79;;;F7F6
FEE7A;;;F7F7
FEE7B;;;F7F8
FEE7C;;;F7F9
FEE7D;;;F7FA