private function convertEmojiForInputCallback($value)
 {
     if (is_array($value)) {
         return array_map(array($this, 'convertEmojiForInputCallback'), $value);
     }
     $result = '';
     for ($i = 0; $i < strlen($value); $i++) {
         $emoji = '';
         $c1 = ord($value[$i]);
         if ($this->getContext()->getRequest()->getMobile()->isSoftBank()) {
             if ($c1 == 0xf7 || $c1 == 0xf9 || $c1 == 0xfb) {
                 $bin = substr($value, $i, 2);
                 $emoji = OpenPNE_KtaiEmoji::convertSoftBankEmojiToOpenPNEFormat($bin);
             }
         } elseif ($c1 == 0xf8 || $c1 == 0xf9) {
             $bin = substr($value, $i, 2);
             $emoji = OpenPNE_KtaiEmoji::convertDoCoMoEmojiToOpenPNEFormat($bin);
         } elseif (0xf3 <= $c1 && $c1 <= 0xf7) {
             $bin = substr($value, $i, 2);
             $emoji = OpenPNE_KtaiEmoji::convertEZWebEmojiToOpenPNEFormat($bin);
         }
         if ($emoji) {
             $result .= $emoji;
             $i++;
         } else {
             $result .= $value[$i];
             if (0x81 <= $c1 && $c1 <= 0x9f || 0xe0 <= $c1) {
                 $result .= $value[$i + 1];
                 $i++;
             }
         }
     }
     return $result;
 }
 protected function convertSoftBankEmoji($matches)
 {
     $unicode = mb_convert_encoding($matches[0], 'UCS2', 'UTF-8');
     $unicode = array(ord($unicode[0]), ord($unicode[1]));
     $bias = array(0x19, 0x40);
     switch ($unicode[0]) {
         case 0xe1:
             $bias[0] = 0x16;
             break;
         case 0xe2:
             $bias[0] = 0x15;
             $bias[1] = 0xa0;
             break;
         case 0xe3:
         case 0xe5:
             $bias[0] = 0x16;
             $bias[1] = 0xa0;
             break;
         case 0xe4:
             $bias[0] = 0x17;
             break;
     }
     if ($bias[1] == 0x40) {
         if ($unicode[1] >= 0x40) {
             $bias[1]++;
         }
     }
     return OpenPNE_KtaiEmoji::convertSoftBankEmojiToOpenPNEFormat(pack('C*', $unicode[0] + $bias[0], $unicode[1] + $bias[1]));
 }