Đặt bộ ký tự utf8 MySQL PHP
Như tôi đã đăng trước đây trên trang web này, tôi tin rằng nên chuẩn hóa mã hóa một ký tự trên tất cả các phần của hệ thống và vì mã hóa ký tự ưa thích của tôi là UTF-8, khi tôi tạo một hệ thống PHP, tôi kiểm tra những điều sau Show
Tất nhiên, chúng tôi cũng cần đặt trình chỉnh sửa của mình thành mã hóa ký tự mong muốn và khi chúng tôi tạo các bảng MySQL, hãy chọn UTF-8 làm mã hóa ký tự (Tôi sẽ đăng một bài về các mã hóa ký tự khác nhau và về các đối chiếu trong tương lai) Làm cho trình duyệt hiểu tài liệu của chúng tôi là UTF-8Không phải lúc nào chúng tôi cũng tính đến khả năng sửa đổi
Tuy nhiên, nếu điều này không khả dụng, chúng tôi có thể chỉ định mã hóa ký tự mà tệp đang được phục vụ gửi tiêu đề ở đầu tập lệnh của chúng tôi Mặc dù điều này có thể dư thừa để thực hiện, chúng tôi có thể chỉ định mã hóa trong thẻ meta bên trong tài liệu HTML (X) kết quả của chúng tôi Làm cho trình duyệt chấp nhận UTF-8 trong biểu mẫuVì chúng tôi đang xử lý mọi thứ dưới dạng UTF-8, nên chúng tôi có thể đảm bảo rằng các biểu mẫu cũng chấp nhận mã hóa ký tự này bằng cách thêm thuộc tính Xử lý dữ liệu chúng tôi thu được từ cơ sở dữ liệu MySQL dưới dạng UTF-8Chúng tôi phải đảm bảo rằng thông tin mà chúng tôi nhận được từ cơ sở dữ liệu đang được xử lý dưới dạng UTF-8 bởi các tập lệnh PHP của chúng tôi, để làm điều này, chúng tôi có thể sử dụng các chức năng bool mysqli_set_charset ( mysqli $link , string $charset )0 hoặc bool mysqli_set_charset ( mysqli $link , string $charset )1 bool mysqli_set_charset ( mysqli $link , string $charset )2 Bây giờ mọi thứ sẽ được hiển thị và hoạt động chính xác trong tập lệnh PHP của chúng tôi UTF-8 trong tệp văn bản thuần túy và tệp htmlGiả sử rằng chúng tôi có quyền truy cập vào tệp cấu hình của Apache, bool mysqli_set_charset ( mysqli $link , string $charset )3 (nó có thể nằm trong default_charset = "utf-8" 0 hoặc trong default_charset = "utf-8" 1), chúng tôi có thể thêm phần sau vào tệp này
Nhưng nếu chúng tôi không thể sửa đổi bool mysqli_set_charset ( mysqli $link , string $charset )3, chúng tôi vẫn có thể làm điều đó bằng cách thêm điều tương tự vào tệp default_charset = "utf-8" 4 của chúng tôiTất nhiên, chúng tôi có thể thêm thẻ meta vào các tệp HTML của mình như đã mô tả trước đây, nhưng đây là cách để đảm bảo rằng các tệp văn bản thuần túy của chúng tôi được gửi dưới dạng UTF-8 Hàm mysqli_set_charset() / mysqli. set_charset chỉ định bộ ký tự mặc định sẽ được sử dụng khi gửi dữ liệu từ và đến máy chủ cơ sở dữ liệu Ghi chú. Để chức năng này hoạt động trên nền tảng Windows, bạn cần có thư viện máy khách MySQL 4. 1. 11 trở lên (đối với MySQL 5. 0 bạn cần 5. 0. 6 trở lên) cú pháp Phong cách hướng đối tượng bool mysqli::set_charset ( string $charset ) phong cách thủ tục bool mysqli_set_charset ( mysqli $link , string $charset ) Tham số TênMô tảBắt buộc/Kết nối tùy chọnChỉ định kết nối MySQL để sử dụngBộ ký tự yêu cầuChỉ định bộ ký tự mặc địnhBắt buộc Bài viết này mô tả cách chỉ định bộ ký tự khi bạn kết nối với cơ sở dữ liệu MySQL bằng một trong các phương pháp sau
Bài viết này giả định rằng bạn đã biết cách kết nối với cơ sở dữ liệu MySQL bằng PHP. Để biết thông tin về cách thực hiện việc này, vui lòng xem bài viết này Xác định bộ ký tự nào có sẵn trên máy chủĐể xác định bộ ký tự nào có sẵn trên máy chủ của bạn cho MySQL, hãy đăng nhập vào tài khoản của bạn bằng SSH, rồi nhập lệnh sau grep "charset name" /usr/share/mysql/charsets/Index.xml | awk -F \" '{print $2}' Lệnh này hiển thị danh sách các giá trị khả dụng mà bạn có thể sử dụng trong các phương thức được mô tả bên dưới Để xem thông tin bổ sung về một bộ ký tự, chẳng hạn như mô tả chi tiết của nó, hãy mở /usr/share/mysql/charsets/Index. xml trong trình soạn thảo văn bản Đặt bộ ký tự bằng tiện ích mở rộng MySQL Cải tiếnNếu bạn đang sử dụng tiện ích mở rộng MySQL Cải tiến (mysqli), hãy sử dụng phương thức set_charset để chỉ định bộ ký tự. Ví dụ: mã mẫu sau minh họa cách chỉ định bộ ký tự tiếng Ả Rập của Windows bằng mysqli $mysqli = new mysqli("localhost", "dbuser", "password", "database"); $mysqli->set_charset("cp1256"); Đặt bộ ký tự bằng PDO (Đối tượng dữ liệu PHP)Để chỉ định bộ ký tự bằng PDO, tất cả những gì bạn phải làm là bao gồm cài đặt bộ ký tự trong chuỗi kết nối. Ví dụ: mã mẫu sau minh họa cách chỉ định bộ ký tự Unicode UTF-8 bằng PDO Cách đặt UTFmysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
Làm cách nào để đặt bộ ký tự thành utf8 trong PHP?PHP UTF-8 Encoding – sửa đổi php của bạn. Điều đầu tiên bạn cần làm là sửa đổi php của bạn. ini để sử dụng UTF-8 làm bộ ký tự mặc định. default_charset = "utf-8"; (Lưu ý. Sau đó, bạn có thể sử dụng phpinfo() để xác minh rằng điều này đã được đặt đúng cách. )
Làm cách nào để đặt bộ ký tự trong MySQL PHP?Làm cách nào để đặt bộ ký tự utf8 trong MySQL?Để thay đổi mã hóa bộ ký tự thành UTF-8 cho chính cơ sở dữ liệu, hãy nhập lệnh sau tại dấu nhắc mysql>. Thay dbname bằng tên cơ sở dữ liệu. Sao chép ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_General_ci ; . |