गलत स्ट्रिंग मान त्रुटियों के कारण यादृच्छिक ईमेल को छोड़ने के लिए दिए गए एक एप्लिकेशन को सूचित करने के बाद, मैं हालांकि गया और utf8
स्तंभ चार्ट और डिफ़ॉल्ट कॉलम कोलाट का उपयोग करने के लिए कई पाठ कॉलम स्विच किए (utf8_general_ci
) ताकि वह उन्हें स्वीकार कर ले। यह अधिकांश त्रुटियों को ठीक कर देता है, और गैर-लैटिन ईमेल को हिट करने पर एप्लिकेशन को एसक्यूएल त्रुटियां मिलना बंद कर देता है।
इसके बावजूद, कुछ ईमेल अभी भी प्रोग्राम को गलत स्ट्रिंग मान इर्रिटर्स का कारण बना रहे हैं: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
सामग्री कॉलम एक MEDIUMTEXT
डेटाटैब है जो utf8
कॉलम चारसेट और ए का उपयोग करता हैutf8_general_ci
। इस कॉलम में कोई झंडे नहीं हैं जिन्हें मैं टॉगल कर सकूं।
यह ध्यान में रखते हुए कि मैं एप्लिकेशन स्रोत कोड को तब तक स्पर्श या देखना नहीं चाहता जब तक कि बिल्कुल आवश्यक न हो:
- उस त्रुटि के कारण क्या है? (हां, मुझे पता है कि ईमेल यादृच्छिक कचरे से भरे हुए हैं, लेकिन मुझे लगा कि utf8 बहुत अधिक अनुदार होगा)
- मेरे द्वारा यह कैसे किया जा सकता है?
- इस तरह के फिक्स के संभावित प्रभाव क्या हैं?
एक बात जो मैंने मानी थी, वह द्विआधारी ध्वज के साथ एक utf8 varchar ([कुछ बड़ी संख्या]) पर स्विच कर रही थी, लेकिन मैं MySQL से अपरिचित हूं, और इस तरह के फिक्स होने का कोई मतलब नहीं है।