1.フィルタリング理由絵文字式
PCやアンドロイドなどのiOS以外のプラットフォーム上で:私たちのプロジェクトの開発では、絵文字表現は、それがすぐに更新されますので、我々は、必ずしも、完璧なショー格納することであっても、面倒なことです。あなたが絵文字を表示する必要がある場合は、絵文字は写真をたくさん用意して、サードパーティのフロントエンドライブラリジョブを使用する必要があります。状況の絵文字完全な出現を表示することができないため、画像が不可能なそうであっても、
ほとんどのビジネスシナリオでは、絵文字は必ずしも必須ではありません。我々はそれを十分に考慮し、コスト削減の様々な取り除くことができます。
2.phpフィルタ絵文字原理
まず、日本の絵文字(ERIテキストは、日本のえカ月JI、E-mojiから意味、日本語で門司意味が文字である)12×12画素の顔文字セットは栗田鳴ったチョン(重隆Kurit)の作成により、日本国内で発信され、ネットワークと人気の携帯電話ユーザー。iOSの5 Appleが絵文字に追加された入力方法をリリースしているので、世界を席巻し始めた絵文字は、現在、絵文字は、最新のコンピュータシステムとの互換性がされている広く、携帯電話のテキストメッセージやソーシャルネットワークのすべての種類で使用される、Unicodeエンコーディングを採用。最近、絵文字パターンでジェスチャーを果たし、この表現の文化を楽しむために、より多くのユーザーが存在します。
絵文字の発音について:多くの人々最初ののこぎり絵文字は、無意識のうちに、文字に似ている「不平研削、」それは事実ではない、絵文字音訳おそらく顕著に「えっ不平研削、」どの「e」の発音と誤読されます発音のABC。
当初、日本の三大通信事業者は、それぞれ異なる文字の定義、すなわち、ドコモ、KDDIやソフトバンクを持っています。地球規模でのiOS内蔵のソフトバンク版、絵文字人気(iOS5を以前のバージョン)を持ちます。そして、Googleが絵文字文字のセットの独自の定義を持っています。iOS5をした後、Unicodeを使用したリンゴの絵文字は、(iOS5をバージョンの後に)定義されました。
ユニコードは、絵文字が4つの文字で定義された対応するシステムを表示するには、3つの文字、絵文字ストレージから4つの文字をソフトバンク考慮していない、単に災害です。
ユニコード定義された絵文字表現3.フィルター
①.unicodeは、この原則に従ってフィルタリング、絵文字は4つの文字で定義されました
// 过滤掉emoji表情
function filter_Emoji($str)
{
$str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换
'/./u',
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
return $str;
}
②。Unicodeは、ソフトバンクは、絵文字は、我々は、それによって、相対データベースは絵文字を格納することができる変更しない実現、ユニコード絵文字ウェイソフトバンクモードに変換することができ、PHP用の絵文字により、ストレージの3つのバイトを占有定義、4バイトの絵文字道のデータベース・レベルの問題解決には、アクションが非常に小さくする必要がありますし、何の問題のパフォーマンス、運用、保守及び他の態様はありません。しかし、避けられない質問は、ソフトバンクのやり方はもはやので、新たに追加された、維持絵文字表現で、ソフトバンクではない、絵文字表現の部分的な損失につながるがあり、この場合は推奨されません。
そこ個人的に練習なしのフォローアップの方法はありませんが、皆のためにそれを提供します。
1、使用utf8mb4に文字セット
MySQLのバージョン> = 5.5.3の場合は、直接のutf8文字セットutf8mb4に直接アップグレードしようとすることができ
、この4バイトのUTF8エンコーディングが古い3バイト文字セットUTF8と完全に互換性があることができ、直接絵文字表現を格納することができ、これは、よりよい解決策の一つです。
バイトとして自分自身のプロジェクト、それが自分の推計によると、増加したパフォーマンスの低下をもたらします...
2、base64エンコーディングを使用して
あなたには、いくつかの理由で文字セットutf8mb4を使用できない場合は、あなたがBASE64 Quxianjiuguoのに使用することができ
、デコードについて削除するときに、UTF8のデータテーブル内のバイトの例セット、絵文字はエンコード機能の後に直接保存することができますまたはそのようなBASE64_ENCODEです缶