Bạn có một vài vấn đề cần giải quyết để thực hiện công việc này một cách chính xác.
Đầu tiên, bạn đã chọn ký tự utf8
để giữ tất cả văn bản của mình. Đó là một lựa chọn tốt. Nếu đây là ứng dụng mới trong năm 2016, bạn có thể chọn bộ ký tự utf8mb4
thay thế. Khi bạn đã chọn một ký tự, người dùng của bạn sẽ có thể đọc được văn bản của bạn.
Thứ hai, để tìm kiếm và sắp xếp (WHERE
và ORDER BY
), bạn cần phải chọn một đối chiếu thích hợp cho từng ngôn ngữ. Đối với người Đức hiện đại, utf8_general_ci
sẽ hoạt động tốt. utf8_unicode_ci
hoạt động tốt hơn một chút nếu bạn cần đặt hàng từ điển chuẩn. Đọc này. http://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html
Đối với tiếng Tây Ban Nha hiện đại, bạn nên sử dụng utf8_spanish_ci
. Đó là bởi vì trong tiếng Tây Ban Nha, các ký tự N và Ñ không được coi là giống nhau. Tôi không biết liệu việc đối chiếu chung có phù hợp với Thổ Nhĩ Kỳ hay không.
Lưu ý rằng dường như bạn đã nhầm lẫn các khái niệm về tập hợp ký tự và đối chiếu trong câu hỏi của mình. Bạn đã đề cập đến một đối chiếu với cột Thổ Nhĩ Kỳ của bạn và một bộ ký tự với cột tiếng Đức của bạn.
Bạn có thể chỉ định rõ ràng bộ ký tự và đối chiếu trong truy vấn. Ví dụ, bạn có thể viết
WHERE _utf8 'München' COLLATE utf8_unicode_ci = table.name;
Trong cụm từ này, _utf8 'München'
là một hằng số nhân vật, và
constant COLLATE utf8_unicode_ci = table.name
là một specifier truy vấn trong đó bao gồm một tên đối chiếu rõ ràng. Đọc này. http://dev.mysql.com/doc/refman/5.7/en/charset-collate.html
Thứ ba, bạn có thể muốn gán một mặc định collation để mỗi cột ngôn ngữ cụ thể. Các collations mặc định được đưa vào các chỉ mục, vì vậy chúng sẽ giúp đẩy nhanh quá trình tìm kiếm.
Thứ tư, người dùng của bạn sẽ cần sử dụng phương thức nhập phù hợp (ánh xạ bàn phím, v.v.) để trình bày dữ liệu cho ứng dụng của bạn. Người dùng ngôn ngữ Thổ Nhĩ Kỳ hy vọng biết cách gõ từ tiếng Thổ Nhĩ Kỳ.
kiểm tra với UTF-8 –