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

Cách làm cho MySQL xử lý UTF-8 đúng cách

Cập nhật:

Câu trả lời ngắn gọn - Bạn hầu như luôn sử dụng utf8mb4 bộ ký tự và utf8mb4_unicode_ci đối chiếu.

Để thay đổi cơ sở dữ liệu:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Xem:

Câu trả lời ban đầu:

MySQL 4.1 trở lên có bộ ký tự mặc định là UTF-8. Bạn có thể xác minh điều này trong my.cnf của mình , hãy nhớ đặt cả hai máy khách và máy chủ (default-character-setcharacter-set-server ).

Nếu bạn có dữ liệu hiện có mà bạn muốn chuyển đổi sang UTF-8, hãy kết xuất cơ sở dữ liệu của bạn và nhập lại dưới dạng UTF-8 để đảm bảo:

  • sử dụng SET NAMES utf8 trước khi bạn truy vấn / chèn vào cơ sở dữ liệu
  • sử dụng DEFAULT CHARSET=utf8 khi tạo bảng mới
  • tại thời điểm này, máy khách và máy chủ MySQL của bạn phải ở dạng UTF-8 (xem my.cnf ). hãy nhớ rằng bất kỳ ngôn ngữ nào bạn sử dụng (chẳng hạn như PHP) cũng phải là UTF-8. Một số phiên bản PHP sẽ sử dụng thư viện máy khách MySQL của riêng chúng, thư viện này có thể không nhận biết được UTF-8.

Nếu bạn muốn di chuyển dữ liệu hiện có, hãy nhớ sao lưu trước! Rất nhiều dữ liệu có thể xảy ra khi mọi thứ không diễn ra như kế hoạch!

Một số tài nguyên:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL COUNT DISTINCT

  2. Điều cần kiểm tra xem Khả năng sử dụng bộ nhớ MySQL có cao không

  3. MySQL - tôi có thể chèn bao nhiêu hàng trong một câu lệnh INSERT?

  4. Neo4j - Nhập dữ liệu từ tệp CSV bằng Cypher

  5. Cách chọn N dòng hàng đầu cho mỗi nhóm trong MySQL