संग्रह का भंडारण से कोई लेना-देना नहीं है। भंडारण एन्कोडिंग निर्धारित करने के लिए आपको वर्णमाला सेट करने की आवश्यकता है। संयोजन नियंत्रित करता है कि तुलना और छँटाई कैसे होनी चाहिए। संयोजन वर्णसेट जागरूक होना चाहिए, लेकिन अन्यथा इसका वर्णसेट से कोई लेना-देना नहीं है।
अपने प्रश्न का उत्तर देने के लिए, आप iconv
. का उपयोग कर सकते हैं पाठ का अनुवाद करने के लिए, और फिर उसकी तुलना करें। उदाहरण के लिए:
function compare($s1, $s2) {
return strcmp(
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}
यह मूल रूप से वही है जो MySql आपके लिए करेगा, हालाँकि यह शायद तेज़ है और इसमें ISO-8859-1//TRANSLIT
की तुलना में थोड़ा अलग संयोजन-तालिका हो सकती है। . इसके बारे में पूरी तरह सुनिश्चित नहीं हैं।
हालांकि डेटाबेस का उपयोग करना शायद आसान होगा, जैसा कि अन्य पहले ही सुझाव दे चुके हैं।