-
mb_internal_encoding('UTF-8')
không tự làm bất cứ điều gì, nó chỉ đặt tham số mã hóa mặc định cho mỗimb_
hàm số. Nếu bạn không sử dụng bất kỳmb_
nào chức năng, nó không tạo ra bất kỳ sự khác biệt nào. Nếu đúng như vậy, bạn nên đặt nó để không phải chuyển$encoding
tham số từng thời điểm riêng lẻ. - IMO
mb_detect_encoding
hầu như vô dụng vì về cơ bản là không thể phát hiện chính xác mã hóa của văn bản không xác định. Bạn nên biết mã hóa một khối văn bản là gì vì bạn có thông số kỹ thuật về nó hoặc bạn cần phân tích cú pháp dữ liệu meta thích hợp như tiêu đề hoặc thẻ meta nơi mã hóa được chỉ định. - Sử dụng
mb_check_encoding
để kiểm tra xem một khối văn bản có hợp lệ trong bảng mã mà bạn mong đợi nó thường đủ hay không. Nếu không, hãy loại bỏ và sửa lỗi thích hợp. -
Về:
Nếu bạn đang thao tác các chuỗi có chứa các ký tự nhiều byte thì có, bạn cần sử dụng
mb_
các chức năng để tránh nhận được kết quả sai. Các hàm chuỗi cốt lõi chỉ hoạt động ở cấp độ byte, không phải cấp độ ký tự, đây là những gì bạn thường muốn khi làm việc với chuỗi. -
utf8_general_ci
so vớiutf8_bin
chỉ tạo ra sự khác biệt khi đối chiếu , tức là sắp xếp và so sánh các chuỗi. Vớiutf8_bin
dữ liệu được xử lý ở dạng nhị phân, tức là chỉ có dữ liệu giống hệt nhau mới giống hệt nhau. Vớiutf8_general_ci
một số logic được áp dụng, ví dụ:"é" được sắp xếp cùng với "e" và chữ hoa được coi là bằng chữ thường.