Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Định dạng dòng lệnh MySQL với UTF8

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_connectioncharacter_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ì?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để lưu trữ MySQL trên Azure Cloud

  2. Kết nối với máy chủ MySQL từ xa bằng PHP

  3. Sự khác biệt giữa utf8_general_ci và utf8_unicode_ci là gì?

  4. mysql - tạo ra một cơ chế tương tự như các chuỗi của Oracle

  5. Đơn vị ngày &giờ trong MySQL (Danh sách đầy đủ)