Tôi mới biết về MySQL và tôi muốn biết:
Làm thế nào tôi có thể tạo một cơ sở dữ liệu với bộ ký tự utf-8
như tôi đã làm trong navicat?
create mydatabase;
... dường như đang sử dụng một số loại bảng mã mặc định.
Tôi mới biết về MySQL và tôi muốn biết:
Làm thế nào tôi có thể tạo một cơ sở dữ liệu với bộ ký tự utf-8
như tôi đã làm trong navicat?
create mydatabase;
... dường như đang sử dụng một số loại bảng mã mặc định.
Câu trả lời:
Lưu ý: Sau đây được coi là một cách thực hành tốt hơn (xem câu trả lời của bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Câu trả lời gốc:
Thử đi:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Để biết thêm thông tin, hãy xem Bộ ký tự và đối chiếu cơ sở dữ liệu trong Hướng dẫn tham khảo MySQL.
COLLATE utf8mb4_unicode_520_ci
hoặc utf8mb4_0900_ai_ci
hoặc thậm chí locale cụ thể, ví dụ: utf8mb4_vi_0900_ai_ci
. Đối với MariaDB 10.2.2+, bạn có các đối chiếu "nopad" utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Có vẻ tốt hơnutf8mb4_unicode_ci
Bạn nên sử dụng:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Lưu ý rằng utf8_general_ci
không còn được khuyến nghị thực hành tốt nhất. Xem phần hỏi đáp liên quan:
Sự khác biệt giữa utf8_general_ci và utf8_unicode_ci trên Stack Overflow.
utf8mb4_0900_ai_ci
. Có vẻ tốt hơnutf8mb4_unicode_ci
utf8mb4
là những gì phần còn lại của chúng ta gọiutf8
. Vậyutf8
bạn hỏi MySQL là gì? Đây là phiên bản giới hạn của utf-8, chỉ hoạt động cho một tập hợp con của các ký tự nhưng không thành công cho những thứ như biểu tượng cảm xúc. Sau đó, họ đã thêm vàoutf8mb4
đó là cách thực hiện chính xác, nhưng MySQL phải tương thích ngược với các lỗi cũ của nó, vì vậy đó là lý do tại sao mã hóa mới được thêm vào thay vì sửa lỗi cũ. Tất cả các cơ sở dữ liệu mới nên sử dụngutf8mb4
.