यह Converting to Emoji पर एक फॉलो-अप है। उस प्रश्न में, ओपी के पास json.dumps()
-encoded फ़ाइल थी जिसमें एक इमोजी के साथ सरोगेट जोड़ी - \ud83d\ude4f
के रूप में प्रतिनिधित्व किया गया था। एस/उसे फ़ाइल पढ़ने और इमोजी का सही ढंग से अनुवाद करने में समस्याएं थीं, और सही answer फ़ाइल से प्रत्येक पंक्ति json.loads()
थी, और json
मॉड्यूल सरोगेट जोड़ी से रूपांतरण को वापस संभालेगा (मैं यूटीएफ 8-एन्कोडेड मान रहा हूं) इमोजी।पायथन में सरोगेट जोड़े के साथ कैसे काम करें?
मेरी स्थिति है: कहते हैं कि मैं उस में एक किराए की जोड़ी के साथ सिर्फ एक नियमित रूप से अजगर 3 यूनिकोड स्ट्रिंग है: इससे बाहर emoji का प्रतिनिधित्व प्राप्त करने के लिए
emoji = "This is \ud83d\ude4f, an emoji."
मैं इस स्ट्रिंग कैसे संसाधित होने पर ? मैं कुछ इस तरह प्राप्त करने के लिए देख रहा हूँ:
"This is , an emoji."
# or
"This is \U0001f64f, an emoji."
मैं कोशिश की है:
print(emoji)
print(emoji.encode("utf-8")) # also tried "ascii", "utf-16", and "utf-16-le"
json.loads(emoji) # and `.encode()` with various codecs
आम तौर पर मैं UnicodeEncodeError: XXX codec can't encode character '\ud83d' in position 8: surrogates no allowed
के समान कोई त्रुटि मिलती है।
मैं लिनक्स पर पाइथन 3.5.1 चला रहा हूं, $LANG
en_US.UTF-8
पर सेट है। मैंने कमांड लाइन पर पाइथन दुभाषिया दोनों में इन नमूनों को चलाया है, और सब्लिमे टेक्स्ट में चल रहे आईपीथॉन के भीतर - कोई अंतर नहीं दिखता है।
बहुत बढ़िया, धन्यवाद! मैं 'surrogatepass' त्रुटि हैंडलर खो रहा था। – MattDMo