Sau khi đọc tất cả các chủ đề về biểu tượng cảm xúc trên SO, tôi bị ràng buộc để yêu cầu trợ giúp. Câu hỏi có vẻ gần như giống nhau: Tôi nhận được một Ứng dụng iPhone gửi qua biểu tượng cảm xúc PHP tới MySQL DB, tôi có thể thấy một số biểu tượng trên hồ sơ, ví dụ như "ô" và "đám mây" nhưng không phải (khuôn mặt giận dữ, khuôn mặt tươi cười) khác).Biểu tượng cảm xúc trên MySQL và PHP: tại sao một số biểu tượng có khác không?
Tại sao một số có và không?
- MySQL Collation: utf8mb_unicode_ci
- Bảng đối chiếu: utf8mb_unicode_ci
- Field, varchar, đối chiếu: utf8mb_unicode_ci
PHP thiết lập:
mysql_query("SET CHARACTER SET utf8mb4");
mysql_query("SET NAMES utf8mb4");
Các biểu tượng không thể hiện bên trong kỷ lục được hiển thị dưới dạng dấu chấm hỏi "?"
Cảm ơn bạn rất nhiều Jake, tôi sẽ tìm kiếm theo hướng của bạn. Ngay bây giờ tôi khá chắc chắn rằng tôi đã chuyển đổi các trường mục tiêu và bảng trong collation phải nhưng tôi phải bỏ lỡ một cái gì đó. Tôi sẽ cập nhật chủ đề này. Thanx – Fabrizio
Tôi đã xác minh và bạn nói đúng 3 byte biểu tượng cảm xúc được thể hiện ok. Những gì tôi nhớ là nơi tôi cần phải thay đổi đối chiếu. Các lĩnh vực mà tôi phải ghi lại các biểu tượng cảm xúc đã có utf8mb4_unicode_ci collation. Bảng chứa trường đó đã có đối chiếu utf8mb4_unicode_ci. Trong Cài đặt chung (phpMyAdmin) tôi thấy rằng collation MySQL là utf8_general_ci và khi tôi cố gắng để thay đổi để utf8mb4_unicode_ci nó dường như tự động trở lại các thiết lập trước đó. Tôi không biết nếu vấn đề là vì lý do này. Tôi sẽ tiếp tục tìm kiếm. – Fabrizio
@Fabrizio Tôi đã viết [một hướng dẫn chi tiết về cách nâng cấp từ 'utf8' thành' utf8mb4'] (http://mathiasbynens.be/notes/mysql-utf8mb4) - có lẽ nó sẽ giúp bạn. –