UTF-8の絵文字を利用する

この記事は公開日より6年以上経過しているため、現在の内容と異なる可能性があります。


※この記事で記述している実装方法はVer.2.7.0よりご利用できます。

デフォルト設定では、UTF-8 の絵文字を利用できません。絵文字を使いたい利用者も多いと思います。ここでは、ユニットやカスタムフィールドで絵文字を使えるようにするカスタマイズを行なっていきたいと思います。

前提条件

  • MySQL: 5.5 以上

絵文字を保存するためには、4バイト必要なのですが、MySQLの文字コードにUTF-8を指定すると3バイトしか保存できません。そこで文字コードを utf8mb4 に変更する事により、4バイト保存できるようになり、絵文字が保存できるようになります。

データベースの設定

データベースの文字コードを utf8mb4 に 照合順序を utf8mb4_general_ci もしくは utf8mb4_unicode_ci に変更してください。出来れば全てのテーブル、カラムを変更が望ましいですが最低限以下のテーブル・カラムを変更ください。

  • acms_column: column_field_1
  • acms_column_rev: column_field_1
  • acms_field: field_value
  • acms_field_rev: field_value
  • acms_fulltext: fulltext_value, fulltext_ngram
  • acms_entry: entry_title

データベース接続文字コードの設定

データベースの文字コードが変更できましたら、config.server.php の DB_CONNECTION_CHARSETutf8mb4 を設定します。

define('DB_CONNECTION_CHARSET', 'utf8mb4');

実際に入力

これで、絵文字が使えるようになりました。あとは、テキストユニットなどで、キーボードから絵文字を入力して保存してみてください。


エントリーで絵文字利用

エントリーで絵文字利用

同じタグ付けがされている記事