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

Xóa ký tự dấu đầu dòng unicode

Vì vậy, nhiều thứ có thể xảy ra sai ở đây, bởi vì cơ sở dữ liệu, gửi biểu mẫu và các ký tự chuỗi mã nguồn đều có liên quan. Tôi giả sử bạn muốn sử dụng UTF-8, bởi vì với bất kỳ mã hóa điển hình nào khác (CP1252, Latin1), bạn sẽ gặp khó khăn khi muốn sử dụng json_ hoặc chấp nhận hơn ~ 200 ký tự khác nhau.

Điều đầu tiên cần làm là xóa bất kỳ loại mã chuyển đổi nào, v.v. được viết với mục đích cố gắng khắc phục sự cố mã hóa. Chẳng hạn như utf8_encode , htmlentitites , *_replace .. sao cũng được.

Mã hóa nguồn.

$str = "· Close up the server";

Khi viết phần trên, tệp nguồn PHP cần được mã hóa vật lý bằng UTF-8. Nếu bạn đang sử dụng Windows, bạn phải thực hiện hoặc cấu hình điều này một cách rõ ràng. UTF-8 không xảy ra một cách kỳ diệu trên Windows.

Gửi biểu mẫu

Khi người dùng gửi biểu mẫu, trọng tải sẽ ở bất kỳ kiểu mã hóa nào mà bạn đã khai báo trang. Bạn có thể khai báo nó như vậy:

header("Content-Type: text/html; charset=utf-8");

Nhưng bất kỳ ai cũng có thể thực sự gửi các byte tùy ý đến máy chủ của bạn, vì vậy bạn nên xác thực dữ liệu đầu vào là UTF-8 trước khi tiếp tục. mb_check_encoding tốt.

Cơ sở dữ liệu

Vì tại thời điểm này, dữ liệu của bạn đang ở dạng UTF-8, các chuỗi đầu vào của bạn ở dạng UTF-8. Bạn phải chỉ định điều này sau khi kết nối với cơ sở dữ liệu, bằng cách chỉ định mã hóa kết nối.

mysql_set_charset("utf8"); //After making the connection, and before any queries
//or $mysqli->set_charset( "utf8");

Điều này làm cho cơ sở dữ liệu đọc đầu vào của bạn trong UTF-8 và mã hóa đầu ra của nó trong UTF-8. Bạn cũng muốn đặt các cột / bảng / cơ sở dữ liệu của mình thành UTF-8.

Chuỗi thoát Unicode \uxxxx hoặc \uhhhh\ullll hoặc \Uxxxxxxxx không được hỗ trợ trong PHP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hiểu các mẹo về mũi tên trong biểu đồ EER của MySQL Workbench

  2. Hiệu suất CASE trong MySQL?

  3. Lập chỉ mục cơ sở dữ liệu MySQL với Apache Lucene và giữ cho chúng được đồng bộ hóa

  4. Hành vi BẬT XÓA mặc định của MySQL là gì?

  5. Tìm kiếm MySQL với các ký tự đại diện có thứ tự và trích xuất giá trị của chúng