a-blog cmsでUTF-8の絵文字対応(CPI ACE01)
お仕事の話ですが、a-blog cmsで絵文字対応するための覚書きとして残しておきます。
基本的には下記オフィシャルページの内容で十分なのですが、利用していたCPI ACE01ではデータベースが「utf8」しか選べなかったため、SQL文で「utf8mb4」に変換しました。まずは下記を参照してください。
・UTF-8の絵文字を利用する
https://developer.a-blogcms.jp/blog/custom/entry-2720.html
こちらは既に存在する文字コード「utf8」のデータベースを変換する場合の手順となります。照合順序はphpMyAdmin上で「utf8mb4_general_ci」や「utf8mb4_unicode_ci」に切り替えられますので手順は省いています。また、当記事に記載された内容で発生したいかなるトラブルも当方は一切責任を負えませんので、全て自己責任でお願いします。これらを踏まえた上でお話を進めます。
まずは既存の文字コード「utf8」のデータベースを「utf8mb4」に置き換えます。
「"データベース名"」をご利用のデータベース名に置き換えてください。
ALTER DATABASE "データベース名" DEFAULT CHARACTER SET utf8mb4;
そして次に、テーブルの文字コードも「utf8mb4」に変更します。
このブログはver2.8系ですが、過去verのテーブルが残してあります。バージョンによって存在しないテーブルがあると思いますので、ご利用のバージョンで使われているテーブルを変換してください。
ALTER TABLE acms_alias CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_app CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_approval CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_approval_notification CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_blog CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_cache CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_cache_reserve CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_carsensor_cache CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_category CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_column CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_column_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_comment CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_config CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_dashboard CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_entry_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_field CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_field_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_form CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_fulltext CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_geo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_geo_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_layout_grid CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_log_access CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_log_form CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_media CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_media_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_moblog CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_module CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_relationship CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_relationship_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_role CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_role_blog CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_rule CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_schedule CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_sequence CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_sequence_plugin CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_session CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_session_php CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_shop_address CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_shop_cart CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_shop_receipt CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_shop_receipt_detail CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_tag_rev CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_trackback CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_usergroup CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_usergroup_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_workflow CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE acms_workflow_usergroup CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
最後に、照合順序を「utf8mb4_general_ci」または「utf8mb4_unicode_ci」に変更して作業完了です。
ということで、このブログもutf8mb4化したので絵文字バッチリです?
さらにutf8mb4化することにより、utf8の4バイト文字が使える様になりますので、「濵﨑髙瀨栁魲煜德丸靏」に加え、4バイトの「?」なんかも使える様になります。これは良いですよね✨