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

Php mã hóa Latin-1 / UTF-8

Đầu ra HTML của bạn cần phải ở một bảng mã duy nhất, không có cách nào để giải quyết vấn đề đó. Điều này có nghĩa là nội dung trong các bảng mã khác nhau cần được chuyển đổi sang mã HTML của bạn trước. Mặc dù điều đó có thể làm được với iconv hoặc mb_convert_encoding , có hai vấn đề bạn phải giải quyết:

  1. Bạn cần biết (hoặc đoán) mã hóa hiện tại của nội dung
  2. Bạn cần thực hiện việc này theo cách thủ công, ở mọi nơi

Ví dụ:một giải pháp lý thuyết sẽ là chọn UTF-8 làm mã hóa HTML của bạn và sau đó thực hiện việc này cho tất cả các chuỗi bạn sẽ xuất ra:

$string = '...'; // from the database

// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
    $string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}

echo $string;

Đoạn mã trên giả định rằng nội dung không phải UTF-8 được mã hóa bằng latin-1, điều này hợp lý theo câu hỏi của bạ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. Làm thế nào để lưu trữ tên tệp trong cơ sở dữ liệu, với các thông tin khác trong khi tải hình ảnh lên máy chủ bằng PHP?

  2. Thiết kế cơ sở dữ liệu:hàng tồn kho và hệ thống bán hàng?

  3. Lỗi 1022 - Không thể ghi; sao chép chìa khóa trong bảng

  4. Làm thế nào để sao lưu cơ sở dữ liệu MySQL trong PHP?

  5. Cài đặt mới python 3.7 / django 2.2.1 không nhận ra rằng mysqlclient đã được cài đặt