Mysql sử dụng mã hóa nào?

Bộ ký tự mặc định cho MySQL tại (mt) Media Temple là latin1, với đối chiếu mặc định là latin1_swedish_ci. Đây là một kiểu mã hóa phổ biến cho các ký tự Latinh. Bạn cũng có thể thay đổi mã hóa. utf8 là một bộ ký tự phổ biến cho các ký tự không phải là tiếng Latinh

GHI CHÚ
Xin lưu ý rằng việc thay đổi đối chiếu cơ sở dữ liệu của bạn không nằm trong tuyên bố hỗ trợ của chúng tôi. Những tài nguyên này được cung cấp như một phép lịch sự để hỗ trợ bạn trong phạm vi khả năng của chúng tôi. Để biết thêm thông tin về tuyên bố hỗ trợ của chúng tôi, vui lòng nhấp vào đây

Hỗ trợ nâng cao có thể giúp
Cần hỗ trợ thêm với máy chủ của bạn? . Để biết thêm thông tin về những gì Hỗ trợ nâng cao có thể làm cho bạn, vui lòng nhấp vào đây

Thay đổi bộ ký tự cơ sở dữ liệu và đối chiếu

Bạn có thể thay đổi bộ ký tự và đối chiếu cơ sở dữ liệu và bảng của mình thông qua phpMyAdmin hoặc từ dòng lệnh. Bạn có thể muốn sao lưu cơ sở dữ liệu của mình trước khi thực hiện thay đổi. Vui lòng xem bài viết này để được hướng dẫn. Xuất và nhập cơ sở dữ liệu MySQL

phpMyAdmin

  1. Đăng nhập vào phpMyAdmin
  2. Chọn cơ sở dữ liệu của bạn từ danh sách bên trái
  3. Nhấp vào "Hoạt động" từ tập hợp các tab trên cùng
  4. Trong hộp Đối chiếu, chọn đối chiếu mới của bạn từ trình đơn thả xuống. utf8_General_ci là đối chiếu utf8 phổ biến nhất
  5. Chọn cơ sở dữ liệu của bạn từ danh sách bên trái
  6. Nhấp vào "Hoạt động" từ tập hợp các tab trên cùng

    Mysql sử dụng mã hóa nào?

  7. Trong hộp Đối chiếu, chọn đối chiếu mới của bạn từ trình đơn thả xuống. utf8_General_ci là đối chiếu utf8 phổ biến nhất.

    Mysql sử dụng mã hóa nào?

  8. Nhấp vào Đi
  9. Để cập nhật một bảng cơ sở dữ liệu, hãy chọn nó từ danh sách bên trái

    Mysql sử dụng mã hóa nào?

  10. Nhấp vào "Hoạt động" từ tập hợp các tab trên cùng

    Mysql sử dụng mã hóa nào?

  11. Trong "Tùy chọn bảng", bên dưới "Đối chiếu", chọn đối chiếu mới của bạn từ menu thả xuống

    Mysql sử dụng mã hóa nào?

  12. Nhấp vào Đi .

Dòng lệnh

  1. Đăng nhập vào MySQL bằng SSH.
    mysql -h internal-db.s00000.gridserver.com -u db00000 -p
  2. Đăng nhập vào MySQL bằng SSH.
    mysql -u admin -p`cat /etc/psa/.psa.shadow`
  3. Nhập mật khẩu cơ sở dữ liệu của bạn khi được nhắc
  4. Chạy lệnh sau để thay đổi bộ ký tự và đối chiếu cơ sở dữ liệu của bạn.
    ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
  5. Chạy lệnh sau để thay đổi bộ ký tự và đối chiếu bảng của bạn.
    ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;

    Đối với một trong những ví dụ này, vui lòng thay thế bộ ký tự mẫu và đối chiếu bằng các giá trị mong muốn của bạn

    Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về bộ ký tự MySQL. Sau phần hướng dẫn, bạn sẽ biết cách lấy tất cả các bộ ký tự trong MySQL, cách chuyển đổi chuỗi giữa các bộ ký tự và cách định cấu hình bộ ký tự thích hợp cho kết nối máy khách

    Giới thiệu về bộ ký tự MySQL

    Bộ ký tự MySQL là một bộ ký tự hợp lệ trong một chuỗi. Ví dụ: chúng ta có một bảng chữ cái gồm các chữ cái từ

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    0  đến z. Chúng tôi gán cho mỗi chữ cái một số, ví dụ:  

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    1, 

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    2, v.v. Chữ cái 

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    0  là ký hiệu và số

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    4  kết hợp với chữ cái

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    0  là mã hóa. Sự kết hợp của tất cả các chữ cái từ a đến z và mã hóa tương ứng của chúng là một bộ ký tự.

    Mỗi bộ ký tự có một hoặc nhiều đối chiếu xác định một bộ quy tắc để so sánh các ký tự trong bộ ký tự. Hãy xem hướng dẫn đối chiếu MySQL để tìm hiểu về các đối chiếu trong MySQL

    MySQL hỗ trợ các bộ ký tự khác nhau cho phép bạn lưu trữ hầu hết mọi ký tự trong một chuỗi. Để lấy tất cả các bộ ký tự có sẵn trong máy chủ cơ sở dữ liệu MySQL, bạn sử dụng câu lệnh 

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    6 như sau

    SHOW CHARACTER SET;

    Code language: SQL (Structured Query Language) (sql)
    Mysql sử dụng mã hóa nào?
    Mysql sử dụng mã hóa nào?

    Bộ ký tự mặc định trong MySQL là

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    7. Nếu bạn muốn lưu trữ các ký tự từ nhiều ngôn ngữ trong một cột, bạn có thể sử dụng bộ ký tự Unicode, đó là

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 hoặc

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    9.

    Các giá trị trong cột

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    0 chỉ định số byte mà một ký tự trong bộ ký tự nắm giữ. Một số bộ ký tự chứa các ký tự byte đơn e. g. ,

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    7 ,

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    2 ,

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    3 , v.v. , trong khi các bộ ký tự khác chứa các ký tự nhiều byte

    MySQL cung cấp hàm

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    4 để lấy độ dài của chuỗi theo byte và hàm 

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    5 để lấy độ dài của chuỗi theo ký tự. Nếu một chuỗi chứa ký tự nhiều byte, thì kết quả của hàm 

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    4 lớn hơn kết quả của hàm 

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    7. Xem ví dụ sau

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    Mysql sử dụng mã hóa nào?
    Mysql sử dụng mã hóa nào?

    Hàm

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 chuyển đổi một chuỗi thành một bộ ký tự cụ thể. Trong ví dụ này, nó chuyển đổi bộ ký tự của chuỗi

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    9 thành

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    9. Bởi vì bộ ký tự

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    9 chứa các ký tự 2 byte, do đó độ dài của chuỗi

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    2 tính theo byte lớn hơn độ dài tính theo ký tự.

    Lưu ý rằng một số bộ ký tự chứa các ký tự nhiều byte, nhưng các chuỗi của chúng có thể chỉ chứa các ký tự một byte e. g. ,

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8  như thể hiện trong các tuyên bố sau

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    Mysql sử dụng mã hóa nào?
    Mysql sử dụng mã hóa nào?

    Tuy nhiên, nếu chuỗi

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 chứa ký tự đặc biệt e. g. ,

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    5  trong chuỗi 

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    6; .

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)

    Mysql sử dụng mã hóa nào?
    Mysql sử dụng mã hóa nào?

    Chuyển đổi giữa các bộ ký tự khác nhau

    MySQL cung cấp hai chức năng cho phép bạn chuyển đổi chuỗi giữa các bộ ký tự khác nhau.

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 và

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8. Chúng tôi đã sử dụng hàm

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 nhiều lần trong các ví dụ trên

    Cú pháp của hàm

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 như sau

    CONVERT(expression USING character_set_name)

    Code language: SQL (Structured Query Language) (sql)

    Hàm

    SET @str = CONVERT('pingüino' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8 tương tự như hàm

    SET @str = CONVERT('MySQL Character Set' USING utf8); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8. Nó chuyển đổi một chuỗi thành một bộ ký tự khác

    CAST(string AS character_type CHARACTER SET character_set_name)

    Code language: SQL (Structured Query Language) (sql)

    Hãy xem ví dụ sau về cách sử dụng hàm

    CONVERT(expression USING character_set_name)

    Code language: SQL (Structured Query Language) (sql)
    3

    SELECT CAST(_latin1'MySQL character set' AS CHAR CHARACTER SET utf8);

    Code language: SQL (Structured Query Language) (sql)

    Đặt bộ ký tự cho kết nối máy khách

    Khi một ứng dụng trao đổi dữ liệu với máy chủ cơ sở dữ liệu MySQL, bộ ký tự mặc định là

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    7. Tuy nhiên, nếu cơ sở dữ liệu lưu trữ các chuỗi Unicode trong bộ ký tự 

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    8, thì việc sử dụng bộ ký tự 

    SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

    Code language: SQL (Structured Query Language) (sql)
    7 trong ứng dụng sẽ không đủ. Do đó, ứng dụng cần chỉ định bộ ký tự phù hợp khi kết nối với máy chủ cơ sở dữ liệu MySQL

    Để cấu hình bộ ký tự cho kết nối máy khách, bạn có thể thực hiện một trong các cách sau

    • Đưa ra câu lệnh

      CONVERT(expression USING character_set_name)

      Code language: SQL (Structured Query Language) (sql)
      7  sau khi máy khách kết nối với máy chủ cơ sở dữ liệu MySQL. Ví dụ: để đặt bộ ký tự Unicode

      SET @str = CONVERT('MySQL Character Set' USING ucs2); SELECT LENGTH(@str), CHAR_LENGTH(@str);

      Code language: SQL (Structured Query Language) (sql)
      8, bạn sử dụng câu lệnh sau

    SET NAMES 'utf8';

    Code language: SQL (Structured Query Language) (sql)
    • Nếu ứng dụng hỗ trợ tùy chọn

      CONVERT(expression USING character_set_name)

      Code language: SQL (Structured Query Language) (sql)
      9  thì bạn có thể sử dụng tùy chọn này để đặt bộ ký tự. Ví dụ: công cụ máy khách mysql hỗ trợ

      CONVERT(expression USING character_set_name)

      Code language: SQL (Structured Query Language) (sql)
      9  và bạn có thể thiết lập nó trong tệp cấu hình như sau

    [mysql] default-character-set=utf8

    Code language: JavaScript (javascript)
    • Một số trình kết nối MySQL cho phép bạn đặt bộ ký tự, ví dụ: nếu bạn sử dụng PHP PDO, bạn có thể đặt bộ ký tự trong tên nguồn dữ liệu như sau

    $dsn ="mysql:host=$host;dbname=$db;charset=utf8";

    Code language: PHP (php)

    Bất kể bạn sử dụng cách nào, hãy đảm bảo rằng bộ ký tự mà ứng dụng sử dụng khớp với bộ ký tự được lưu trữ trong máy chủ cơ sở dữ liệu MySQL

    Trong hướng dẫn này, bạn đã học về bộ ký tự MySQL, cách chuyển đổi chuỗi giữa các bộ ký tự và cách định cấu hình bộ ký tự thích hợp cho kết nối máy khách

    Mã hóa trong MySQL là gì?

    Hàm ENCODE() của MySQL được dùng để mã hóa chuỗi văn bản thuần túy . Hàm MySQL ENCODE() trả về một chuỗi nhị phân có cùng kích thước với chuỗi văn bản thuần túy. Hàm MySQL DECODE() trả về chuỗi rỗng nếu chuỗi truyền vào là chuỗi rỗng.

    Mã hóa mặc định trong MySQL là gì?

    Bộ ký tự và đối chiếu mặc định của máy chủ MySQL là latin1 và latin1_swedish_ci , nhưng bạn có thể chỉ định các bộ ký tự tại máy chủ, cơ sở dữ liệu, bảng, .

    Cách đặt UTF

    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.

    Sự khác biệt giữa utf8mb3 và UTF là gì

    UTF-8 là mã hóa có độ dài thay đổi. Trong trường hợp của UTF-8, điều này có nghĩa là việc lưu trữ một điểm mã cần từ một đến bốn byte. Tuy nhiên, Mã hóa của MySQL có tên là "utf8" (bí danh của "utf8mb3") chỉ lưu trữ tối đa ba byte cho mỗi điểm mã .