Câu trả lời ngắn
Khởi động ứng dụng khách với tùy chọn --default-character-set=utf8 :
mysql --default-character-set=utf8
Bạn có thể đặt cài đặt này làm mặc định trong /etc/mysql/my.cnf tệp.
[mysql]
default-character-set=utf8
Câu trả lời ngắn không hoạt động, hãy đọc dưới đây
Lệnh trên buộc character_set_client , character_set_connection và character_set_results cấu hình biến thành utf8 .
Để kiểm tra các giá trị cho tất cả các biến cấu hình liên quan đến bộ ký tự, bạn có thể chạy:
show variables like '%char%';
character_set_database cung cấp cho bạn bộ ký tự của cơ sở dữ liệu (lược đồ) hiện tại mà bạn đang ở trong đó. Lược đồ và bảng được tạo theo mặc định với bộ ký tự được chỉ định trong character_set_server , trừ khi nó được chỉ định rõ ràng trong CREATE tuyên bố.
character_set_server có thể được thay đổi trong my.cnf tệp:
[mysqld]
character-set-server = utf8
Ngoài ra, các bảng và cột có thể có bộ ký tự riêng có thể khác với bảng hoặc lược đồ mẹ của chúng. Để kiểm tra cụ thể các giá trị của từng bảng và cột trong cơ sở dữ liệu, hãy xem câu trả lời sau: Làm cách nào để xem bộ ký tự của cơ sở dữ liệu / bảng / cột MySQL là gì?
Nếu bạn muốn thay đổi bộ ký tự của các bảng và cột hiện có, hãy xem câu trả lời sau: Làm cách nào để chuyển đổi toàn bộ bộ ký tự và đối chiếu cơ sở dữ liệu MySQL thành UTF-8?
Thông tin thêm về bộ ký tự kết nối trong tài liệu mysql .
Mọi thứ được đặt thành utf8, nhưng tôi vẫn thấy các ký tự kỳ lạ
Ngay cả khi tất cả các biến bộ ký tự, bảng và cột được đặt thành utf8 , có thể có trường hợp bạn nhìn thấy các ký tự kỳ lạ trên màn hình của mình. Ví dụ:ai đó có thể đã viết các ký tự Unicode trong utf8 , thông qua một ứng dụng khách với latin1 kết nối (ví dụ:bằng cách chạy mysql --default-character-set=latin1 ). Trong trường hợp này, bạn cần kết nối với cơ sở dữ liệu với cùng một bộ ký tự như các giá trị đã được ghi. Bạn cũng có thể truy xuất và viết lại chúng thông qua mã hóa chính xác.
LƯU Ý :Như các nhận xét đã chỉ ra, mysql utf8 mã hóa không phải là cách triển khai đúng và đầy đủ của UTF-8. Nếu cần triển khai đầy đủ UTF-8, người ta có thể sử dụng utf8mb4 bộ ký tự:
mysql --default-character-set=utf8mb4
Thông tin thêm tại đây: Sự khác biệt giữa bộ ký tự utf8mb4 và utf8 trong MySQL là gì?