a-blog cms開発のアップルップル

a-blog cmsで投稿した文章が消える原因と対処法


a-blog cmsで制作したサイトにテキストを新規投稿したところ、最初の5文字だけ反映され、残りの文章がすべて消えてしまった。
「昨日まで投稿できていたのになぜだろう? WAF設定の問題なのだろうか?」とあれこれ考えていたところ、絵文字が悪さをしているのではないかと思い当たった。
そこで、ハートマークなどの絵文字を削除して保存ボタンを押したところ、テキストが正しく表示された。

文章消失の原因は絵文字だったが、この絵文字はa-blog cmsのエントリーで表示できるとのことだった。

絵文字はUnicodeという規格で定義されており、UTF-8では多くの場合4バイトで表現されている。

対処手順は以下のとおりである。まず、config.server.php の13行目にある
define('DB_CONNECTION_CHARSET', null); の null を 'utf8mb4' に書き換える。
この手順により、絵文字が原因で文章が消失する現象が解消する。ただし、この時点では絵文字は「?」マークで表示される。

【参考】
標準の utf8 はMySQLの実装上3バイトまでしか扱えないため、4バイトのUTF-8文字(絵文字など)を保存しようとすると文字が切り捨てられてしまう。utf8mb4(mb4 = most bytes 4)に変更することで、4バイト文字も正しく扱えるようになる。

次に、データベース(phpMyAdmin)を開く。
データベースの文字コードを utf8mb4_general_ci または utf8mb4_unicode_ci に変更する。
さらに、以下のテーブル・カラムも同様に 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

以上で、絵文字がエントリーに反映されるようになる。

なお、詳細は下記のイラストを参照してください。

【補足】
utf8mb4_general_ci と utf8mb4_unicode_ci のどちらを選ぶかについては、一般的に以下のとおりである。

utf8mb4_unicode_ci … Unicodeの標準規則に基づいた照合順序で、より正確。絵文字を扱う場合はこちらが推奨されることが多い。

utf8mb4_general_ci … 簡略化された照合順序で、処理がやや速いが、厳密さでは unicode_ci に劣る。

したがって、絵文字対応が目的であれば utf8mb4_unicode_ci を推奨する。

投稿:2026年4月7日
安藤秀樹




データベースの文字コード

データベースの文字コード


config.server.php

config.server.php


テーブル・カラム

テーブル・カラム


テーブル・カラム変更指示 実行ボタンをクリック

テーブル・カラム変更指示 実行ボタンをクリック


絵文字

絵文字


a-blog cms開発のアップルップル

ピックアップリスト

リンク集

カテゴリーリスト

お電話でのお問い合せはこちら(午前10時〜午後5時)

0587-53-5124