PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पायथन + पोस्टग्रेएसक्यूएल + अजीब एएससीआई =यूटीएफ 8 एन्कोडिंग त्रुटि

प्रश्न एक झूठे आधार से शुरू होता है:

ASCII वर्ण "\x00" से "\x7F" की श्रेणी में हैं।

पहले स्वीकृत अब-हटाए गए उत्तर को दो घोर गलतफहमी के तहत संचालित किया गया (1) वह लोकेल ==एन्कोडिंग (2) कि लैटिन 1 एन्कोडिंग "\x80" को एक यूरो वर्ण में मैप करता है।

वास्तव में, सभी ISO-8859-x एन्कोडिंग "\x80" से U+0080 मैप करते हैं जो कि C1 नियंत्रण वर्णों में से एक है, यूरो वर्ण नहीं। उनमें से केवल 3 एन्कोडिंग (x in (7, 15, 16)) यूरो वर्ण को "\xA4" के रूप में प्रदान करते हैं। देखें यह विकिपीडिया लेख

आपको जानना चाहिए आपका डेटा किस एन्कोडिंग में है। इसे किस मशीन पर बनाया गया था? कैसे? जिस लोकेल में इसे बनाया गया था (जरूरी नहीं कि आपका) वह आपको एक सुराग दे सकता है।

ध्यान दें कि "मेरा डेटा लैटिन 1 में एन्कोड किया गया है" "चेक इन द मेल" और "बेशक मैं आपको सुबह प्यार करूंगा" के साथ है। आपका डेटा संभवत:Windows प्लेटफ़ॉर्म पर पाए जाने वाले cp125x एन्कोडिंग में से एक में एन्कोड किया गया है। ध्यान दें कि cp1251 (Windows सिरिलिक) को छोड़कर उनमें से सभी "\x80" को यूरो वर्ण में मैप करते हैं:

>>> ['\x80'.decode('cp125' + str(x), 'replace') for x in range(9)]
[u'\u20ac', u'\u0402', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac']

अपडेट करें ओपी की टिप्पणी के जवाब में

यह थोड़ा भ्रमित करने वाला है:पहले आप कहें

लेकिन बाद में आप कहते हैं

कृपया समझाएं।

एक उपयुक्त cp125x एन्कोडिंग का चयन:फ़ाइल कहाँ (भौगोलिक स्थान) बनाई गई थी? पाठ किस भाषा (भाषाओं) में लिखा गया है? अनुमानित यूरो के अलावा कोई अन्य वर्ण> "\x7f" के साथ? यदि हां, तो वे किस संदर्भ में और किस संदर्भ में उपयोग किए जाते हैं?

अपडेट 2 यदि आप "कार्यक्रम को कैसे लिखा जाता है" नहीं जानते हैं, तो न तो आप और न ही हम इस पर कोई राय बना सकते हैं कि क्या यह हमेशा यूरो वर्ण के लिए "\x80" का उपयोग करता है। हालांकि अन्यथा करना स्मारकीय मूर्खता होगी, इससे इंकार नहीं किया जा सकता है।

यदि पाठ अंग्रेजी भाषा में लिखा गया है और/या यह संयुक्त राज्य अमेरिका में लिखा गया है, और/या यह एक विंडोज प्लेटफॉर्म पर लिखा गया है, तो यह निश्चित रूप से निश्चित है कि cp1252 जाने का रास्ता है ... जब तक आपको इसके विपरीत सबूत नहीं मिलते, उस स्थिति में आपको अपने आप से एक एन्कोडिंग का अनुमान लगाने की आवश्यकता होगी या (कौन सी भाषा, कौन सी जगह) प्रश्नों का उत्तर देना होगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अलग-अलग मापदंडों के साथ फ़ंक्शन में शून्य के लिए परीक्षण

  2. PostgreSQL का उपयोग करके डेटाबेस कैसे स्विच करें

  3. स्कीमा बनाएं यदि मौजूद नहीं है तो डुप्लिकेट कुंजी त्रुटि उत्पन्न होती है

  4. रेल / ActiveRecord ORDER में एक पोस्टग्रेज सिंटेक्स एरर गैर-पूर्णांक स्थिरांक क्यों देता है?

  5. यदि आपके द्वारा तुलना किए जा रहे कॉलम में शून्य/खाली मान हो सकते हैं तो क्या आपको हमेशा WHERE में कोलेस का उपयोग करने की आवश्यकता होती है?