2012-07-10 16 views
5

मैं एक वेब पेज है, जो जापानी होता है दिलवाया, लेकिन जब मैं यह कंसोल के लिए प्रिंट मुझे आउटपुट 7月10日 के रूप में नहीं मिला। इसके बजाय, यह प्रिंट: 7\xe6\x9c\x8810\xe6\x97\xa5अजगर प्रिंट के रूप में परिणाम '7 XE6 x9c x8810 XE6 x97 xa5', लेकिन मैं चाहता हूँ '7 月 10 日'

मुझे क्या करना चाहिए?

+1

आप अजगर 3 पर हैं? यदि ऐसा है तो आप शायद एक बाइट ऑब्जेक्ट प्रिंट कर रहे हैं। मेरे अनुभव में, कम से कम विंडोज़ पर, यदि आप एक अप्राप्य चरित्र मुद्रित करने का प्रयास करते हैं तो पायथन फेंकता है। – Skurmedel

+1

प्रिंट प्रकार (अपने स्ट्रिंग) –

+0

मेरा अनुमान है कि अपने कंसोल UTF-8 मुद्रित करने में सक्षम नहीं है ... (क्या सांत्वना के प्रकार के बारे में हम बात कर रहे हैं) – gecco

उत्तर

7

आपको प्राप्त होने वाला आउटपुट सही है। यह जापानी स्ट्रिंग का यूटीएफ -8 प्रतिनिधित्व है। समस्या कंसोल ही है कि यह यूटीएफ -8 को समझ में नहीं आता है। यदि आप उस स्ट्रिंग को फ़ाइल में लिखते हैं और इसे एक संपादक के साथ खोलते हैं जो यूटीएफ -8 को समझता है तो आप जिस सामग्री की अपेक्षा करेंगे, उसे आप देखेंगे। आप कंसोल के एन्कोडिंग को यूटीएफ -8 में बदलने की भी कोशिश कर सकते हैं।

संपादित करें: तुम भी साथ कुछ की कोशिश कर सकते:

print '7\xe6\x9c\x8810\xe6\x97\xa5'.decode('utf-8') 

लेकिन यह काम करता है इस पर निर्भर करता एन्कोडिंग सांत्वना जापानी वर्णों का समर्थन करता है या नहीं। मेरा सुझाव है कि उदाहरण के लिए सांत्वना के कूट 'आईएसओ लैटिन -1' की तुलना में यह काम नहीं करेगा है ...

तो आप पढ़ सकते हैं: http://www.joelonsoftware.com/articles/Unicode.html

+2

सं सांत्वना कुछ 8 बिट एन्कोडिंग wouldn 'का उपयोग करने के लिए कॉन्फ़िगर हेक्स अंकों के लिए 7-बिट ASCII से ऊपर octets से बचें। –

+0

धन्यवाद। मैं पिचर्म के विचार का उपयोग करता हूं, जब मैं एक स्ट्रिंग मुद्रित करता हूं (एक [1] प्रिंट करता हूं), यह एक शब्दकोश मुद्रित करते समय जापानी दिखा सकता है (प्रिंट करें), ऐसा नहीं होता है। – user1514160

+0

@Tadeusz कंसोल यूटीएफ -16 का उपयोग कर सकता है जिस स्थिति में स्ट्रिंग अमान्य है। –