हमारे पास हाल ही में एक क्षेत्र से संबंधित एन्कोडिंग के साथ एक समस्या थी जिसे SQL सर्वर में एक varchar (120) के रूप में संग्रहीत किया जा रहा है। SSMS में, varchar दिखाई देता है:
"किसने जॉनबेन को मार डाला?"
हालाँकि, जब इसे अजगर में लाया जाता है, यह इस प्रकार दिखाई देता है:
मैंने पायथन पक्ष से इस पर शोध किया है, और कुछ भी अजीब नहीं चल रहा है। मेरा सिद्धांत है कि SQL सर्वर में varchar UTF-8 वर्णों को स्वीकार कर रहा है जो कि SSMS की तुलना में अजगर में अलग तरह से प्रदर्शित हो रहे हैं। मैं SQL सर्वर में एन्कोडिंग से बहुत परिचित नहीं हूँ। क्या कोई मुझे निम्नलिखित बता सकता है:
- क्या SSMS में varchar की एन्कोडिंग देखने का कोई तरीका है? उदाहरण के लिए, SSMS से वर्तमान में कॉमा प्रदर्शित करने के बजाय \ x82 देखें?
- हम SQL Server 2008 का उपयोग कर रहे हैं। क्या किसी भी UTF-8 वर्णों के लिए एन्कोडिंग को ASCII वर्णों में आयात / निर्यात टूल का उपयोग किए बिना या एक फ्लैट फ़ाइल में डंपिंग के बिना एन्कोडिंग को बदलने का कोई तरीका है? यानी मैं एक क्वेरी के माध्यम से यह रूपांतरण कर सकता हूं?
- क्या किसी प्रश्न के माध्यम से समस्याग्रस्त रिकॉर्ड को प्रोग्रामेटिक रूप से पहचानने का कोई तरीका है (समस्याग्रस्त को UTF-8 वर्णों के रूप में परिभाषित किया जा रहा है जो ASCII के माध्यम से समर्थित नहीं हैं)?
आपका अग्रिम में ही बहुत धन्यवाद!
उपयोग करके sp_help N'table_name';
मैंने पाया कि इस VARCHAR
कॉलम का Collation है SQL_Latin1_General_CP1_CI_AS
:।
sp_help N'table_name';
। "नाम" के आधार पर कॉलम देखें और फिर "collation_name" कॉलम देखें।
VARCHAR
कॉलम किस कॉलम का उपयोग कर रहा है?