Không chỉ là Emoji: Tại sao nâng cấp Database lên chuẩn "utf8mb4" là bắt buộc trong năm 2025?
Bạn đã bao giờ gặp tình trạng thành viên đăng bài viết từ điện thoại, chèn một biểu tượng cảm xúc (Emoji), và kết quả là bài viết bị cắt cụt ngay tại vị trí đó? Hay tệ hơn là các ký tự biến thành dấu
Sai lầm! Trong MySQL, bộ mã
Bước 1: Sao lưu (Backup) Database
Đây là bước bắt buộc vì quá trình này sẽ thay đổi cấu trúc vật lý của toàn bộ các bảng (Tables).
Bước 2: Tắt diễn đàn
Vào AdminCP tắt diễn đàn hoặc đóng cổng Web Server để đảm bảo không có dữ liệu mới phát sinh trong quá trình chuyển đổi.
Bước 3: Chạy lệnh chuyển đổi qua CLI
Truy cập SSH vào thư mục gốc của XenForo và chạy lệnh:
Lệnh này sẽ tự động rà soát toàn bộ tables, chuyển đổi sang
Bước 4: Cập nhật Config (Chỉ làm khi Bước 3 thành công)
Mở file
Dòng này báo hiệu cho XenForo biết Database đã sẵn sàng nhận dữ liệu Emoji.
Bạn đã bao giờ gặp tình trạng thành viên đăng bài viết từ điện thoại, chèn một biểu tượng cảm xúc (Emoji), và kết quả là bài viết bị cắt cụt ngay tại vị trí đó? Hay tệ hơn là các ký tự biến thành dấu
????. Đó không phải lỗi của XenForo, mà là lỗi của Database. Năm 2025, khi Emoji trở thành ngôn ngữ toàn cầu, việc giữ Database ở chuẩn utf8 cũ kỹ là một "tội ác" với trải nghiệm người dùng. Hãy cùng thực hiện cuộc chuyển đổi sang utf8mb4 để diễn đàn của bạn thực sự hòa nhập với thế giới Mobile.1. Sự thật về "Cú lừa" mang tên utf8 của MySQL
Rất nhiều Admin nghĩ rằng: "Database mình set là utf8 rồi, chắc là full unicode rồi".Sai lầm! Trong MySQL, bộ mã
utf8 (thực chất là utf8mb3) chỉ dùng 3-bytes để lưu trữ.- Nó lưu được tiếng Việt, tiếng Anh.
- Nhưng nó KHÔNG lưu được các ký tự 4-bytes (Astral Plane characters) - bao gồm toàn bộ các Emoji hiện đại (, ) và một số ký tự Hán/Nhật phức tạp.
- Khi MySQL
utf8gặp một ký tự 4-byte, nó sẽ hoảng loạn và thường là ngắt luôn chuỗi dữ liệu tại đó để bảo toàn cấu trúc. Đây là nguyên nhân bài viết bị mất đoạn sau.
2. utf8mb4: Chuẩn mực bắt buộc cho năm 2025
utf8mb4 (UTF-8 Most Bytes 4) mới là bộ mã Unicode hoàn chỉnh.- Trải nghiệm Mobile: 90% user dùng điện thoại và họ dùng Emoji trong mọi câu chat. Không hỗ trợ utf8mb4 đồng nghĩa với việc cấm user dùng điện thoại.
- SEO & Google: Googlebot ngày càng thông minh, nó ưu tiên các trang hiển thị đúng mọi loại ký tự đặc biệt. Việc hiển thị
????bị đánh giá là nội dung kém chất lượng (Thin content).
3. Quy trình chuyển đổi an toàn (Xác thực kỹ thuật)
Đừng dại dột vào phpMyAdmin và đổi Collation thủ công, bạn sẽ làm hỏng dữ liệu. Hãy làm theo đúng trình tự chuẩn của XenForo dưới đây:Bước 1: Sao lưu (Backup) Database
Đây là bước bắt buộc vì quá trình này sẽ thay đổi cấu trúc vật lý của toàn bộ các bảng (Tables).
Bước 2: Tắt diễn đàn
Vào AdminCP tắt diễn đàn hoặc đóng cổng Web Server để đảm bảo không có dữ liệu mới phát sinh trong quá trình chuyển đổi.
Bước 3: Chạy lệnh chuyển đổi qua CLI
Truy cập SSH vào thư mục gốc của XenForo và chạy lệnh:
Mã:
php cmd.php xf:convert-utf8mb4
utf8mb4_general_ci (hoặc unicode_ci tùy phiên bản MySQL) và tự động resize các cột index để tránh lỗi.Bước 4: Cập nhật Config (Chỉ làm khi Bước 3 thành công)
Mở file
src/config.php và thêm dòng sau vào:
Mã:
$config['fullUnicode'] = true;
4. Lưu ý quan trọng về hiệu năng
Quá trình convert sẽ tốn thời gian và tài nguyên (nó phải viết lại toàn bộ dữ liệu).- Với Data < 1GB: Mất vài phút.
- Với Data > 10GB: Có thể mất cả tiếng đồng hồ. Hãy kiên nhẫn và không tắt cửa sổ Terminal giữa chừng.
Kết luận
Chuyển đổi sangutf8mb4 không chỉ là vấn đề kỹ thuật, đó là sự tôn trọng thói quen của người dùng hiện đại. Đừng để diễn đàn của bạn trở thành một "cổ vật" chỉ vì không hiển thị nổi một cái mặt cười.
Bài viết chỉ thể hiện quan điểm cá nhân của tác giả và mang tính tham khảo.
Chúng tôi không chịu trách nhiệm cho bất kỳ rủi ro nào phát sinh từ việc sử dụng thông tin trong bài viết.


![[VNXF] Theme Digital – Sự lựa chọn hoàn hảo cho diễn đàn công nghệ hiện đại](https://cdn.vnxf.vn/data/assets/logo_default/theme-digital.png)
![[VNXF 2x] Best Statistics Pro – Thống kê nâng cao, tối ưu hiệu năng cho XenForo 1.1](https://cdn.vnxf.vn/data/assets/logo_default/beststatpro2x.png)


