हम जिस कंपनी के लिए काम करते हैं उसमें MySQL का उपयोग कर रहे हैं, और हम रूबी ऑन रेल्स का उपयोग करके क्लाइंट-फेसिंग और आंतरिक अनुप्रयोगों दोनों का निर्माण करते हैं।
जब मैंने यहां काम करना शुरू किया, तो मैं एक ऐसी समस्या में भाग गया, जिसका मैंने पहले कभी सामना नहीं किया था; उत्पादन सर्वर पर डेटाबेस लैटिन -1 के लिए सेट है, जिसका अर्थ है कि उपयोगकर्ता इनपुट जब भी उपयोगकर्ता इनपुट कॉपी करता है और UTF-8 वर्णों को चिपकाता है, तो MySQL रत्न एक अपवाद को फेंक देता है।
मेरे मालिक इन "खराब चरित्रों" को कॉल करते हैं क्योंकि उनमें से अधिकांश गैर-मुद्रण योग्य वर्ण हैं, और कहते हैं कि हमें उन्हें बाहर निकालने की आवश्यकता है। मुझे ऐसा करने के कुछ तरीके मिले हैं, लेकिन आखिरकार हम एक ऐसी परिस्थिति में समाप्त हो गए हैं, जहां एक UTF-8 चरित्र की आवश्यकता थी। इसके अलावा यह एक परेशानी का एक सा है, खासकर जब से यह एकमात्र समाधान की तरह लगता है जो मैंने कभी इस मुद्दे के बारे में पढ़ा है, बस डेटाबेस को UTF-8 पर सेट करना है (मुझे समझ में आता है)।
एकमात्र तर्क जो मैंने लेटिन -1 के साथ चिपके रहने के लिए सुना है, वह है गैर-मुद्रण योग्य UTF-8 वर्णों को अनुमति देना MySQL में पाठ / पूर्ण-पाठ खोजों को गड़बड़ कर सकता है। क्या यह वास्तव में सच है?
क्या यूटीएफ -8 पर लैटिन -1 का उपयोग करने के अन्य कारण हैं? यह मेरी समझ है कि यह श्रेष्ठ है और अधिक सर्वव्यापी बन रहा है।