आप इस काम को सही ढंग से करने के लिए हल करने के लिए कई मुद्दों है कीवर्ड दर्ज कर सकते हैं अटक।
पहले, आपने अपने सभी टेक्स्ट को रखने के लिए utf8
वर्ण सेट चुना है। यह एक अच्छा विकल्प है। यदि यह एक नया 2016 में आवेदन है, तो आप इसके बजाय utf8mb4
वर्ण सेट चुन सकते हैं। एक बार जब आप एक चरित्र सेट चुन लेते हैं तो आपके उपयोगकर्ता आपके टेक्स्ट को पढ़ने में सक्षम होना चाहिए।
दूसरा, खोज और (WHERE
और ORDER BY
) छँटाई के लिए आप प्रत्येक भाषा के लिए एक उचित मिलान का चयन करने की जरूरत है। आधुनिक जर्मन के लिए, utf8_general_ci
सहिष्णुता से अच्छी तरह से काम करेगा। utf8_unicode_ci
मानक लेक्सिकल ऑर्डरिंग की आवश्यकता होने पर थोड़ा बेहतर काम करता है। इसे पढ़ें। http://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html
आधुनिक स्पेनिश के लिए, आपको utf8_spanish_ci
का उपयोग करना चाहिए। ऐसा इसलिए है क्योंकि स्पेनिश में एन और Ñ वर्ण समान नहीं मानते हैं। मुझे नहीं पता कि सामान्य collation तुर्की के लिए काम करता है या नहीं।
ध्यान दें कि आपने अपने प्रश्न में चरित्र सेट और संयोजन के विचारों को भ्रमित कर दिया है। आपने अपने तुर्की कॉलम और आपके जर्मन कॉलम के साथ एक चरित्र सेट के साथ एक संयोजन का उल्लेख किया है।
आप स्पष्ट रूप से प्रश्नों में वर्ण सेट और संयोजन निर्दिष्ट कर सकते हैं। उदाहरण के लिए, आप
WHERE _utf8 'München' COLLATE utf8_unicode_ci = table.name;
इस अभिव्यक्ति में, _utf8 'München'
एक चरित्र स्थिर है, और
constant COLLATE utf8_unicode_ci = table.name
एक प्रश्न विनिर्देशक जो एक स्पष्ट मिलान नाम भी शामिल है लिख सकते हैं। इसे पढ़ें। http://dev.mysql.com/doc/refman/5.7/en/charset-collate.html
तीसरा, आप प्रत्येक भाषा विशिष्ट स्तंभ के लिए एक डिफ़ॉल्ट मिलान आवंटित करने के लिए कर सकते हैं। डिफ़ॉल्ट collations इंडेक्स में बेक्ड हैं, इसलिए वे खोज में तेजी लाने में मदद मिलेगी।
चौथा, आपके उपयोगकर्ताओं को आपके आवेदन में डेटा प्रस्तुत करने के लिए उचित इनपुट विधि (कीबोर्ड मैपिंग आदि) का उपयोग करने की आवश्यकता होगी। तुर्की भाषा के उपयोगकर्ताओं को आशा है कि तुर्की शब्दों को कैसे टाइप करें।
यूटीएफ -8 –