हमारे पास एक पुराना 5.1 माइस्क्ल सर्वर सर्वर 2003 पर चल रहा है। हाल ही में हम माइस्क्ल 5.6 और सर्वर 2008 के साथ एक नए वातावरण में स्थानांतरित हो गए हैं। अब नए सर्वर पर 'Ã' जैसे विशेष वर्ण डालने पर हम त्रुटियां प्राप्त करते रहते हैं।गलत स्ट्रिंग मान: ' xC2 x9Fe 10 ...' कॉलम
अब मैंने स्रोत एन्कोडिंग की जांच की है और यह यूटीएफ -8 है। लेकिन पुराने MySQL सर्वर को लैटिन 1 (सर्वर/टेबल/कॉलोनम) के रूप में कॉन्फ़िगरेशन latin_swedish_ci के साथ कॉन्फ़िगर किया गया था और हमें पुराने वातावरण पर कोई त्रुटि नहीं मिली थी।
अब मैंने कुछ परीक्षण किया है क्योंकि हम नए पर्यावरण पर नहीं रहते हैं। मैंने टेबल/कॉलोन के साथ-साथ लैटिन 1 में सभी टेबल सेट करने का प्रयास किया है। दोनों मामलों में मैं इन त्रुटियों को प्राप्त करता रहता हूं।
मैंने जो देखा वह पुराने सर्वर पर सर्वर डिफ़ॉल्ट चार-सेट लैटिन 1 है और नए सर्वर पर इसके utf-8 है। क्या यह समस्या हो सकती है? मुझे यह बहुत अजीब लगता है क्योंकि स्रोत utf-8 है।
क्या ऐसा कुछ विकल्प हो सकता है जो पुराने वातावरण पर चालू हो सकता है? मुझे यकीन नहीं है कि ऐसा कुछ मौजूद है या नहीं। मैंने mysql व्यवस्थापक उपकरण के भीतर सेटिंग्स की तुलना की और डिफ़ॉल्ट चार-सेट के अलावा यह वही दिखता है।
संपादित करें:
शो की तरह 'चार%' चर;
पुराने सर्वर:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8 | *
| character_set_connection | utf8 | *
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 | *
| character_set_server | latin1 |
| character_set_system | utf8 |
नई सर्वर:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8mb4 | *
| character_set_connection | utf8mb4 | *
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 | *
| character_set_server | utf8 |
| character_set_system | utf8 |
एक की सुपर सेट जहाँ तक मुझे MySQL साइट utf8mb4 पर लेख भर से समझने के रूप में किया जाता है utf8 यह एन्कोडिंग के लिए कोई समस्या नहीं पैदा करना चाहिए, मुझे लगता है कि वे मूल रूप से एन्कोडिंग पर समान हैं?
हां, utf8mb4 utf8 से 'बेहतर' है। फिर भी, एक को पूरे MySQL में सुसंगत होना चाहिए। 'Ã' का संदर्भ क्या है? 'C29Fe' में से? वहां अतिरिक्त संकेत हो सकते हैं। (फिर भी 'Ã' दोनों वर्ण सेटों में मान्य है और सी 2 9 एफ (मुझे लगता है) दोनों में अमान्य है।) –