सामान्य तौर पर सबसे अच्छा तरीका है टेबल कोलाज को बदलना। हालांकि मेरे पास एक पुराना एप्लिकेशन है और परिणाम के बारे में अनुमान लगाने में वास्तव में सक्षम नहीं है कि क्या इसके दुष्प्रभाव हैं। इसलिए मैंने किसी तरह स्ट्रिंग को कुछ अन्य प्रारूप में परिवर्तित करने की कोशिश की, जिससे टकराव की समस्या हल हो गई। मुझे जो काम मिला वह स्ट्रिंग की तुलना हेक्साडेसिमल प्रतिनिधित्व में वर्णों को परिवर्तित करके करना है। डेटाबेस पर यह HEX(column).
PHP के साथ किया जाता है आप इस फ़ंक्शन का उपयोग कर सकते हैं:
public static function strToHex($string)
{
$hex = '';
for ($i=0; $i<strlen($string); $i++){
$ord = ord($string[$i]);
$hexCode = dechex($ord);
$hex .= substr('0'.$hexCode, -2);
}
return strToUpper($hex);
}
डेटाबेस क्वेरी करते समय, आपके मूल UTF8 स्ट्रिंग को utf8_decode()
DB में उपयोग करने से पहले पहले एक आईएसओ स्ट्रिंग (जैसे PHP में उपयोग करना) में परिवर्तित किया जाना चाहिए । समतलीकरण प्रकार के कारण डेटाबेस में UTF8 वर्ण नहीं हो सकते हैं, इसलिए तुलनात्मक घटना होनी चाहिए, हालांकि यह मूल स्ट्रिंग (UTF8 वर्णों को परिवर्तित करता है जो ISO charset परिणाम में मौजूद नहीं हैं? या ये पूरी तरह से हटा दिए जाते हैं)। बस यह सुनिश्चित करें कि जब आप डेटाबेस में डेटा लिखते हैं, तो आप उसी यूटीएफ 8 को आईएसओ रूपांतरण में उपयोग करते हैं।