इससे प्रश्न चिह्न आते हैं:
- ग्राहक के पास एक मान्य वर्ण (अच्छा) है, और
- द
SET NAMES
क्लाइंट के पास (अच्छा) एन्कोडिंग से सहमत है, लेकिन - लक्षित कॉलम का
CHARACTER SET
इच्छित वर्ण (खराब) शामिल नहीं है।
उदाहरण:
latin1
केवल पश्चिमी यूरोपीय पात्रों को संभालता है; एक पूर्वी यूरोपीय चरित्र या किसी एशियाई चरित्र को डालने की कोशिश करना फिट नहीं होगा।latin2
औरcp1250
चेक को संभाल सकता है, इसलिए उनके बीच रूपांतरण अधिकतर ठीक हैं, लेकिन उनमें से किसी एक औरlatin1
के बीच नहीं हैंutf8mb4
utf8
. का सुपरसेट है .utf8 वर्ण को utf8mb4 में डालना ठीक है, लेकिन इसके विपरीत परिणाम '?' होगा कुछ मामलों में।
वे वर्ण जिन्हें '?' में परिवर्तित किया गया था तालिका से पुनर्प्राप्त नहीं किया जा सकता है।
भविष्य के INSERTs
को कैसे ठीक करें ?
utf8mb4
का उपयोग करना टेबल कॉलम पर शायद सभी मामलों में काम करता है।- अन्यथा, कुछ
CHARACTER SET
चुनें टेबल कॉलम के लिए जो क्लाइंट डेटा से उचित रूप से मेल खाता है।
केवल कुछ वर्णों के ?
. होने का कारण (š?ž??
. में ) ऐसा इसलिए है क्योंकि šž
latin1 में मौजूद हैं लेकिन अन्य नहीं हैं।
निचला रेखा:CHARACTER SET
बदलें तालिका परिभाषा में।