जवाबों:
आप सही हैं, 3.1.3 देखें । यूनिकोड स्ट्रिंग्स ।
यह पायथन 2.0 के बाद से वाक्यविन्यास है।
पायथन 3 ने उन्हें निरर्थक बना दिया, क्योंकि डिफ़ॉल्ट स्ट्रिंग प्रकार यूनिकोड है। 3.2 के माध्यम से संस्करणों 3.0 ने उन्हें हटा दिया, लेकिन उन्हें 2 से 3 संक्रमण के लिए पायथन 2 के साथ संगतता के लिए 3.3+ में फिर से जोड़ा गया ।
ur"string") का संयोजन पाइथन 2 में मान्य है, लेकिन यह दुर्भाग्य से पाइथन 3 में अमान्य सिंटैक्स है।
यू का u'Some String'अर्थ है कि आपका स्ट्रिंग एक यूनिकोड स्ट्रिंग है ।
प्रश्न: मैं एक भयानक, भयानक जल्दी में हूं और मैं Google खोज से यहां पहुंचा हूं। मैं इस डेटा को एक फ़ाइल में लिखने की कोशिश कर रहा हूं, मुझे एक त्रुटि मिल रही है, और मुझे मृत सरलतम, शायद त्रुटिपूर्ण, इस दूसरे समाधान की आवश्यकता है।
ए: आपको वास्तव में जोएल के निरपेक्ष न्यूनतम हर सॉफ्टवेयर डेवलपर को बिल्कुल पढ़ना चाहिए , सकारात्मक रूप से यूनिकोड और चरित्र सेट (कोई बहाना नहीं!) चरित्र सेट पर निबंध के बारे में पता होना चाहिए ।
क्यू: sry कोई समय कोड pls
ठीक है। कोशिश करो str('Some String')या 'Some String'.encode('ascii', 'ignore')। लेकिन आपको यूनिकोड स्ट्रिंग को बदलने और चरित्र एन्कोडिंग पर इस उत्कृष्ट, उत्कृष्ट, प्राइमर पर वास्तव में कुछ उत्तरों और चर्चा को पढ़ना चाहिए ।
मेरा अनुमान है कि यह "यूनिकोड" को इंगित करता है, क्या यह सही है?
हाँ।
यदि हां, तो कब से उपलब्ध है?
अजगर 2.x.
पायथन 3.x में तार डिफ़ॉल्ट रूप से यूनिकोड का उपयोग करते हैं और uउपसर्ग की कोई आवश्यकता नहीं है । नोट: पायथन 3.0-3.2 में, यू एक वाक्यविन्यास त्रुटि है। पायथन 3.3+ में 2/3 संगत ऐप्स को लिखना आसान बनाने के लिए फिर से कानूनी है।
uउपसर्ग का उपयोग करने के लिए पायथन 3 में एक सिंटैक्स त्रुटि भी है ।
six.text_type()अभी भी उपयोग करने वाले लोगों की उम्मीद के लिए हर जगह उपयोग करते हैं (उम्मीद है कि miniscule) अभी भी 3. [012] - कम से कम जानकारी वहाँ है तो आप चुन सकते हैं।
मैं यहां आया क्योंकि मुझे अपने requestsआउटपुट पर फनी-चार-सिंड्रोम था । मैंने सोचा था response.textकि मुझे ठीक से डिकोड किया गया स्ट्रिंग मिलेगा, लेकिन आउटपुट में मुझे मजाकिया डबल-चार मिले जहां जर्मन umlauts होना चाहिए था।
टर्न आउट response.encodingकिसी तरह से खाली था और इसलिए responseयह नहीं पता था कि सामग्री को ठीक से कैसे डिकोड किया जाए और इसे ASCII के रूप में माना जाए (मुझे लगता है)।
मेरा समाधान था कि 'प्रतिक्रिया. कॉन्टेंट' के साथ कच्ची बाइट्स प्राप्त करूं और मैन्युअल रूप decode('utf_8')से उस पर लागू हो। नतीजा स्कोने उमलाउत था ।
सही ढंग से डिकोड किया गया
फर
बनाम अनुचित रूप से डिकोड किया गया
fĂźr
मनुष्यों के लिए बने सभी तारों को यू "" का उपयोग करना चाहिए।
मैंने पाया कि पायथन स्ट्रिंग्स के साथ काम करते समय निम्नलिखित मानसिकता बहुत मदद करती है: सभी पायथन प्रकट स्ट्रिंग्स को u""सिंटैक्स का उपयोग करना चाहिए । ""वाक्य रचना, केवल बाइट सरणियों के लिए है।
कोसने से पहले, मुझे समझाने की। अधिकांश पायथन कार्यक्रम ""स्ट्रिंग्स के उपयोग के साथ शुरू होते हैं। लेकिन फिर उन्हें इंटरनेट से दस्तावेज़ीकरण का समर्थन करने की आवश्यकता होती है, इसलिए वे उपयोग करना शुरू कर देते हैं "".decodeऔर अचानक उन्हें इस डिकोडिंग के बारे में हर जगह अपवाद मिल रहे हैं और यह सब - ""स्ट्रिंग्स के उपयोग के कारण । इस मामले में, यूनिकोड एक वायरस की तरह काम करता है और कहर बरपाएगा।
लेकिन, यदि आप मेरे नियम का पालन करते हैं, तो आपको यह संक्रमण नहीं होगा (क्योंकि आप पहले से ही संक्रमित होंगे)।
bash -c "echo Shouldn\\'t you use b\\\"...\\\" for byte arrays?"
u""।
यह यूनिकोड है।
बस के बीच चर डाल दिया str(), और यह ठीक काम करेगा।
लेकिन अगर आपके पास निम्नलिखित की तरह दो सूचियाँ हैं:
a = ['co32','co36']
b = [u'co32',u'co36']
यदि आप जांच करते हैं set(a)==set(b), तो यह गलत के रूप में आएगा, लेकिन यदि आप निम्नानुसार करते हैं:
b = str(b)
set(a)==set(b)
अब, परिणाम सच होगा।
str()या u'€'.encode()) को एनकोड नहीं करना चाहिए । यदि स्ट्रिंग में गैर-एएससीआईआई है तो उपयोगकर्ता को एक यूनिकोड ईकोडकोड प्राप्त होगा।
b = str(b)बस repr()सूची का तार देता है , अर्थात b = "[u'co32', u'co36']"। फिरset(a)==set(b) = False