日常生活において、ユーザーから送信されたコンテンツに絵文字表現が含まれている場合、それを処理しないと表示される際に文字化けしてしまうことがよくあります。そこで、この記事では、PHP WeChat 開発における絵文字表現に関する処理方法をいくつか紹介します。お役に立てれば幸いです。
背景
WeChat 開発を行っていると、WeChat ニックネームを保存することが不可欠であることがわかります。
しかし、邪悪な WeChat はニックネームとして絵文字表現をサポートしていますが、これは少し苦痛です
一般に、Mysql テーブルを設計するときは、UTF8 文字セットが使用されます。絵文字を含むニックネーム フィールドを insert
すると、ニックネーム フィールドが消え、フィールド全体が空の文字列になります。どうしたの? insert
一下就没了,整个字段变成了空字符串。这是怎么回事呢?
原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。这要怎么办呢?我来介绍几种方法
解决方案
1、使用utf8mb4字符集
如果你的mysql版本>=5.5.3
,你大可直接将utf8
直接升级为utf8mb4
字符集
这种4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoji表情,是最好的解决方案
至于字节增大带来的性能损耗,我看过一些评测,几乎是可以忽略不计的
2、使用base64编码
如果你因为某些原因无法使用utf8mb4的话,你还可以使用base64
来曲线救国
使用例如base64_encode
解決策
1. utf8mb4文字セットを使用します
mysqlバージョン>=5.5.3
の場合は、utf8を直接変更できます。 code> は、<code>utf8mb4
文字セットに直接アップグレードされます
この 4 バイト utf8 エンコーディングは、古い 3 バイト utf8 文字セットと完全に互換性があり、絵文字表現を直接保存できます。これが最良のソリューションですバイト数の増加によるパフォーマンスの低下については、いくつかのレビューを読みましたが、ほとんど無視できます
2. Base64 エンコードを使用します何らかの理由で utf8mb4 を使用できない場合は、 を使用することもできます。国を救うためのbase64
base64_encode
などの関数を使用すると、エンコードされた絵文字を utf8 バイトセットのデータテーブルに直接保存し、取り出すときにデコードできます 絵文字表現は保存できても、完全に表示されない場合があります。 PCやAndroidなどiOS以外のプラットフォームでも。絵文字を表示する必要がある場合は、大量の絵文字画像を用意し、サードパーティのフロントエンド ライブラリを使用する必要があります。それでも、絵文字画像が十分ではないため、表示できない場合があります。ほとんどのビジネスシーンでは、絵文字は必要ありません。それを適切に削除して、さまざまなコストを節約することを検討できます🎜🎜🎜🎜🎜MySQL データ辞書を生成する方法php 🎜🎜🎜🎜🎜🎜phpはワードカウント機能を実装します🎜🎜🎜🎜🎜🎜PHPがバイナリデータを処理する方法🎜🎜🎜以上がPHP プロジェクトで絵文字式を使用する場合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。