PHP API を利用したアプリで絵文字サポートを有効にするように依頼されました。アプリは現在 iPhone のみです (私は持っていませんが、絵文字が付いていると思いますか?)。
とにかく、何らかの理由でデータベースがどこでも latin_swedish を使用していることに気付きました。しかし、絵文字の全範囲に必要な 4 バイトの文字列を utf-8 がサポートできるかどうか確信が持てなかったので、ググってみましたが、結果から完全な答えを得ることができませんでした。
そう:
絵文字をサポートするには、文字セット/照合順序を mysql で utf-8 に設定する必要がありますか、または utf-8 mb4 に設定する必要がありますか?
charset を utf8mb4 に設定する必要がある場合、utf8 と utf8mb4 の違いは何ですか (とにかく utf8 は最大 4 バイトをサポートしますよね?)。文字を固定幅の 4 バイト表現で格納するように強制しますか (通常は 1 バイトである標準の ASCII 範囲でも、文字ごとに 4 倍以上の記憶域が必要であると仮定します)。
mysqlクエリでutf8をutf8mb4と比較できますか? 別のテーブルの utf8 列に対して utf8mb4 文字セットの全文検索または where 句を実行しようとするとどうなりますか?
PHP は、mb_string のような特別なライブラリを使用せずに 4 バイト文字列をサポートしますか? つまり、割り当て
$var = $_POST['text']
て次のようなことを行うことができ$emoji_var == 'xxxx'
ますか、それとも PHP のすべての文字列を文字通り変更して mbstring を使用し、すべてのコンパレータを変更する必要がありますか?
絵文字をサポートするためにどれだけの作業が必要か、またその際の注意事項を調べてみました。だから、どんな助けも素晴らしいでしょう。