大きい目の笑顔:😃
直でもいいの?😃
どちらを使っても表示されるので、基本的には好きな方を選んで問題ありません!ただ、状況によって使い分けることをおすすめします。
😀 (絵文字そのものを入力する方法)
この方法はシンプルで直感的ですが、ファイルのエンコーディングがUTF-8である必要があります。もしエンコーディングが適切でない場合、文字化けが発生する可能性があります。
😀 (文字参照を使う方法)
HTMLエンティティを使うと、エンコーディングに依存しないので安全性が高まります。また、コードを扱う際に明示的でわかりやすい点も利点です。ただし、読みづらくなる可能性があるので、複数の絵文字を使う場合は注意が必要です。
つまり、簡単な作業や個人用のページでは「😀」を使い、エンコーディングの問題や他人が読むことを考慮する場面では「😀」を選ぶのが良いかもしれません。
「絵文字そのもの」をMySQLに保存する
CREATE TABLE emojis ( id INT AUTO_INCREMENT PRIMARY KEY, emoji_text VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL );
指定する文字数(例: 255)は文字数そのものを指します。つまり、絵文字そのものを保存した場合でも、文字参照(例: 😀)を保存した場合でも、MySQLの文字列の長さとして扱われるのはエンコード後のバイト数ではなく、論理的な文字数です。
ただし、以下の点に注意してください:
絵文字そのもの(例: 😀)は通常1文字とカウントされます。ただし、utf8mb4を使用している場合に限ります。
文字参照(例: 😀)はそのまま保存すると、その文字列の全体の長さがカウントされます。例えば、😀は9文字としてカウントされます。