Đối chiếu không liên quan gì đến việc lưu trữ. Bạn cần đặt bộ ký tự để xác định mã hóa lưu trữ. Sự đối chiếu chi phối cách thức so sánh và sắp xếp diễn ra. Đối chiếu phải nhận biết được bộ ký tự, nhưng nếu không thì nó không liên quan gì đến bộ ký tự.
Để trả lời câu hỏi của mình, bạn có thể sử dụng iconv
để dịch văn bản, và sau đó so sánh nó. Ví dụ:
function compare($s1, $s2) {
return strcmp(
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}
Về cơ bản đây là những gì MySql sẽ làm cho bạn, mặc dù nó có thể nhanh hơn và nó có thể có bảng đối chiếu hơi khác so với ISO-8859-1//TRANSLIT
. Không hoàn toàn chắc chắn về điều đó.
Tuy nhiên, có lẽ sẽ dễ sử dụng cơ sở dữ liệu hơn như những người khác đã đề xuất.