Làm thế nào để lưu Biểu tượng cảm xúc vào MySQL? Nhập cơ sở dữ liệu Biểu thức cảm xúc biểu tượng dấu chấm hỏi vấn đề ký tự

Nếu biểu thức Biểu tượng cảm xúc được lưu trữ trong mã hóa utf8Cơ sở dữ liệu MySQLhoặc MariaDB, nó không thể được hiển thị.

Tại sao biểu thức Emoji được nhập vào cơ sở dữ liệu lại trở thành một ký tự dấu chấm hỏi?

Bởi vì biểu thức Emoji là các ký tự 4 byte và bộ ký tự utf8 chỉ hỗ trợ 1-3 byte ký tự, các biểu thức Emoji không thể được ghi vào cơ sở dữ liệu.

Làm thế nào để giải quyết vấn đề mà biểu thức Emoji được nhập vào cơ sở dữ liệu trở thành một ký tự dấu chấm hỏi?

Có 2 giải pháp:

  1. Nhập văn bản theo cách thủ công, thay thế các ký tự XNUMX byte bằng các ký tự tùy chỉnh.
  2. sửa đổi MySQL Bộ ký tự cơ sở dữ liệu, thay đổi bộ ký tự cơ sở dữ liệu từ utf8 thành utf8mb4, hỗ trợ ký tự 1-4 byte.

Trong thực tế, phương pháp đầu tiên là quá nhiều công việc và không được khuyến khích.

Khuyến nghị sử dụng giải pháp thứ hai, sửa đổi bộ ký tự cơ sở dữ liệu MySQL.

Bắt đầu từ phiên bản MySQL 5.5.3, cơ sở dữ liệu có thể hỗ trợ bộ ký tự utf4mb8 gồm 4 byte và một ký tự có thể có tối đa 4 byte, vì vậy nó có thể hỗ trợ nhiều bộ ký tự hơn và cũng có thể lưu trữ các biểu thức Emoji.

  • Sau MySQL 5.5.3, về cơ bản bạn có thể nâng cấp liền mạch lên bộ ký tự utf8mb4.
  • Đồng thời, utf8mb4 tương thích với bộ ký tự utf8.
  • Mã hóa, vị trí và lưu trữ các ký tự utf8 ở utf8mb4.
  • Tương tự như bộ ký tự utf8, không có thiệt hại cho dữ liệu hiện có.

DophpMyAdminĐối với các bảng mới được tạo trong cơ sở dữ liệu mới được tạo, mã hóa ký tự mặc định là:Latin1

  • Bảng mã này không thể chèn các biểu thức Tiếng Trung và Biểu tượng cảm xúc;
  • Bạn cần thay đổi mã hóa bộ ký tự của bảng và bộ ký tự cơ sở dữ liệu thành utf8mb4;
  • Sau đó, khởi động lại MySQL, bạn có thể chèn các biểu thức tiếng Trung và Emoji.

Giải pháp cho vấn đề ký tự MySQL Emoji

第 1 步 :Sửa đổi tệp cấu hình MySQL my.cnf

  • (Máy chủ Windows là my.ini,LinuxMáy chủ là my.cnf)
  • tệp my.cnf, thường ở/etc/mysql/my.cnfChức vụ.
  • Bảng điều khiển CWPTệp my.cnf, nằm trong/etc/my.cnfChức vụ.

Sau khi tìm được, vui lòng thêm nội dung sau vào ba phần sau ▼

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

第 2 步 :Khởi động lại cơ sở dữ liệu MySQL

service mysqld restart

Bước 3: Kiểm tra lại bộ ký tự và nhập ▼ vào dòng lệnh SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Kiểm tra xem những điều sau ▼

Làm thế nào để lưu Biểu tượng cảm xúc vào MySQL? Nhập cơ sở dữ liệu Biểu thức cảm xúc biểu tượng dấu chấm hỏi vấn đề ký tự

Nhập lệnh SQL sau ▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Kiểm tra xem nó như sau ▼

 +--------------------------+--------------------+

| Variable_name | Value |

+--------------------------+--------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | utf8mb4_unicode_ci |

| collation_database | utf8mb4_unicode_ci |

| collation_server | utf8mb4_unicode_ci |

+--------------------------+--------------------+

Sau khi tạo cơ sở dữ liệu mới trong phpMyAdmin, bạn phảiXem mã cơ sở dữ liệu ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

Nếu mã hóa cơ sở dữ liệu khôngutf8mb4, bạn phải sửa đổi bộ ký tự cơ sở dữ liệu thànhutf8mb4 .

Làm cách nào để sửa đổi bộ ký tự cơ sở dữ liệu thành utf8mb4?

Bước 1: Nhấp vào tên cơ sở dữ liệu hiện tại trong phpMyAdmin, sau đó nhấp vào SQL.

Bước 2: Nhập lệnh sau để sửa đổi bộ ký tự cơ sở dữ liệu thànhutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

第 3 步 :Khởi động lại cơ sở dữ liệu MySQL

service mysqld restart
  • Đó là nó.

Dưới đây là một số ví dụ về các lệnh SQL:

Thay đổi bộ ký tự mặc định và tất cả các cột ký tự của bảng thành bộ ký tự mới ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Nếu bạn chỉ sửa đổi bộ ký tự mặc định của bảng ▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Sửa đổi bộ ký tự của một trường ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • 如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Xem mã bảng ▼

SHOW CREATE TABLE tbl_name;

Xem mã trường ▼

SHOW FULL COLUMNS FROM tbl_name;

Xem mã cơ sở dữ liệu hiện tại ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Gói trình điều khiển mysql-connector-java chỉ hỗ trợ utf5.1.13mb8 trong 4+

Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ ) đã chia sẻ "Làm thế nào để lưu Emoji vào MySQL? Nhập cơ sở dữ liệu Biểu thức cảm xúc biểu tượng dấu chấm hỏi vấn đề", hữu ích với bạn.

Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-26592.html

Chào mừng bạn đến với kênh Telegram trên blog của Chen Weiliang để cập nhật những thông tin mới nhất!

🔔 Hãy là người đầu tiên nhận được "Hướng dẫn sử dụng Công cụ AI tiếp thị nội dung ChatGPT" có giá trị trong thư mục trên cùng của kênh! 🌟
📚 Hướng dẫn này chứa đựng giá trị to lớn, 🌟Đây là cơ hội hiếm có, đừng bỏ lỡ! ⏰⌛💨
Chia sẻ và thích nếu bạn thích!
Chia sẻ và thích của bạn là động lực không ngừng của chúng tôi!

 

发表 评论

Địa chỉ email của bạn sẽ không được công bố. 项 已 * 标注

cuộn lên trên cùng