2012-10-31 10 views
5

जब मैं ट्विटर के स्ट्रीम एपीआई से डेटा पढ़ता हूं और फिर xmlfile को लिखता हूं।डीकोड और # 55357; वास्तविक चरित्र

लेकिन � जैसे कुछ विशेष वर्ण त्रुटि का कारण होगा (मेरा मतलब है जब मैं Chrome में उस xmlfile खोलने, क्रोम ने कहा कि चरित्र पर कोई त्रुटि आई थी कि!)

मुझे लगता है कि इनकोडिंग अनुक्रम परिवर्तित करना चाहते हैं (�) xmlfile को लिखने से पहले असली चरित्र (& # 55357;) में!

इसे कैसे कार्यान्वित करें?

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
<text>@carlyraejepsen would be a dream if you follow me, please follow me?, I love you so much you're my inspiration</text> 
<text>someone please bring me a caramel apple and a mocha from black cat. i'll love you forever</text> 
<text>“@G_MartinFlyKick: Marry me Juliet.I love you and that's all I really know.”&#55357;&#56834;&#55357;&#56834;&#55357;&#56834;&#55357;&#56834;&#55357;&#56834;</text> 
<text>"I need to see a picture of him cuz Im trying to imagine you guys making love and all I see is u climbing on top of a big question mark"lmao</text> 
<text>@District3music hi, I LOVE YOU follow me please? &amp;lt;3 xx 23</text> 
<text>RT @syardley_: So appreciative of my family and people I love, wouldn't be where I am without them. #thankful</text> 
<text>#DISTRICT3HALLOWEENFOLLOWSPREE #DISTRICT3HALLOWEENFOLLOWSPREE #3EEKERFROMTHENETHERLANDS love you! Please follow ? @District3music x42</text> 
<text>Arguably my favorite electronic music producer @Kluteuk is coming back to Toronto on Dec 22nd. So stoked. Guy has made so many tunes I LOVE.</text> 
<text>The stakes are high, the water's rough, but this love is ours.</text> 
<text>@NiallOfficial Answer me, I love you very much. Venezuela loves. jhgj</text> 
<text>Love this shit http://t.co/qSP79NKx</text> 
</root> 

और:

------------- जोड़ा --------------

यह XMLFile सामग्री है यहाँ क्रोम से त्रुटि है:

This page contains the following errors: 

error on line 5 at column 91: xmlParseCharRef: invalid xmlChar value 55357 
Below is a rendering of the page up to the first error. 
+0

कौन-सी भाषा/ढांचे आप उपयोग कर रहे हैं? नेट? सी? 6502 असेंबलर? –

+0

त्रुटि क्या कहती है? कृपया हमें एक्सएमएल दिखाएं। – SLaks

+0

मैं Java @DourHighArch – Songokute

उत्तर

12

चरित्र संदर्भ &#55357; एक किराए कोड बिंदु (U + D83D) को दर्शाता है, तो यह है कि यह एक चरित्र को बदलने की कोशिश करने के लिए गलत होगा। यह एक चरित्र नहीं है, यहां तक ​​कि आधा चरित्र भी नहीं है।

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

+0

मैं इस लिंक से डेटा पुनर्प्राप्त करता हूं: https://stream.twitter.com/1.1/statuses/filter.json?delimited=length&track=love, तो, एन्कोडिंग भ्रम कैसे होता है? – Songokute

+0

@ सोंगोक्यूट, कहना मुश्किल है, क्योंकि पृष्ठ उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देता है। –

+2

XMLFile सामग्री के आधार पर, ऐसा लगता है कि डेटा में U + 1F602 "" जैसे वर्ण हैं, जिसका अर्थ है कि यह यूटीएफ -16 में दो कोड इकाइयों पर है। जाहिर है मूल डेटा यूटीएफ -16 है और इसे पहले यूटीएफ -8 में परिवर्तित किया जाना चाहिए। –

0

आप सर्वर प्रतिक्रिया के बाद इसे बदलने के लिए नियमित अभिव्यक्तियों का उपयोग कर सकते हैं। अजगर में सरल उदाहरण:

import re 
pattern = re.compile(r'&#') 
new_content = pattern.sub(' ', SERVER_RESPONSE) 
संबंधित मुद्दे