2009-08-24 12 views
7

अतः,हेक्साडेसिमल 0X19 कोई अमान्य वर्ण

मैं XMLWriter का उपयोग कर डाटासेट से मूल्यों पर आधारित एक्सएमएल स्ट्रिंग निर्माण कर रहा हूँ।

यह सेटिंग्स और शर्तों के अनुसार एक्सएमएल स्ट्रिंग का सही ढंग से निर्माण कर रहा है।

यदि डेटासेट में 1000 से अधिक रिकॉर्ड हैं और जब मैं xml स्ट्रिंग बनाने का प्रयास करता हूं तो मुझे उपरोक्त त्रुटि मिल रही है। हेक्साडेसिमल 0X19 एक अमान्य चरित्र

मैं इसे कैसे प्राप्त करूं। मैंने पता लगाने की कोशिश कर रहे लगभग 6 बजे बिताए हैं।

कृपया मदद

+0

मुझे बस इसी त्रुटि का सामना करना पड़ा। :) प्रश्न में चरित्र को 'माध्यम का अंत' चरित्र के रूप में जाना जाता है। अधिक जानकारी यहां देखी जा सकती है: http://www.fileformat.info/info/unicode/char/19/index.htm। –

उत्तर

-1

कोशिश 0x19 बजाय :)

हेक्साडेसिमल (आधार 16) 16 संकेतों जो 0 9 और ABCDEF (या च, जो 10 से 15 का प्रतिनिधित्व करता है के लिए एक)

लिए कर रहे हैं का उपयोग करता है 0x सिर्फ प्रोग्रामिंग भाषाओं (सी) की तरह और गोले

में संख्यात्मक स्थिरांकों के लिए एक उपसर्ग है
+0

धन्यवाद सिल्वेन। त्रुटि पर कोई भी विचार मुझे –

1

हेक्स 0x19 ASCII sequence में एक नियंत्रण कोड है - यह मध्यम (ईएम) की अंत है। मुझे यकीन नहीं है कि यह आपके डेटा स्ट्रीम में कैसे हो रहा है। यदि आप एटीडीएफ -8 में एक से अधिक बाइट की आवश्यकता वाले एन्कोडिंग कर रहे हैं और फिर इसे एक बाइट वर्ण सेट या कुछ अन्य समान एन्कोड/डिकोड अनुक्रम के रूप में देखते हैं, तो आप यूटीएफ -8 अनुक्रम के दूसरे बाइट को देख सकते हैं।

क्या आप एक चरित्र सेट से दूसरे में ट्रांसकोडिंग कर रहे हैं? और इनपुट और आउटपुट एन्कोडिंग क्या हैं?

+0

मिल रहा है यदि आप स्मार्ट कोट्स के साथ माइक्रोसॉफ़्ट वर्ड दस्तावेज़ की प्रतिलिपि बनाते हैं और पेस्ट करते हैं तो आप उन मानों को प्राप्त कर सकते हैं।हमारा ओरेकल डेटाबेस यूएस 7 एएससीआईआईआई है, तो शायद यूनिकोड संग्रहित है लेकिन केवल अंतिम दो अक्षर सहेजे गए हैं? ये "स्मार्ट" सिंगल कोट और "स्मार्ट" डबल अक्षरों को हेक्स 18, 1 9, 1 सी, 1 डी के रूप में संग्रहीत किया जा रहा है: http://stackoverflow.com/questions/2826191/converting-ms-word-quotes-and-apostrophes सबूत: http://i.imgur.com/hVpv7NB.jpg – Sun

13

काफी सरलता से, आपको उस XML दस्तावेज़ में उस वर्ण की अनुमति नहीं है, इससे कोई फर्क नहीं पड़ता कि आप इसे कैसे चिह्नित करते हैं। spec उद्धरण:

चार :: = # x9 | # एक्सए | # एक्सडी | [# x20- # xD7FF] | [# xE000- # xFFFD] | [# x10000- # x10FFFF]

मोटे तौर पर अनुवाद, इसका मतलब है कि 0x20 से पहले, आप केवल अनुमति हो टैब (0x09), न्यू लाइन (0x0A) और गाड़ी वापसी (0x0d)।

base64 जैसे किसी अन्य, एम्बेडेड, एन्कोडिंग का उपयोग करने के लिए इस तरह के मुद्दे को दूर करने का सामान्य तरीका।

-1

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

<tagNameattributeName="attributeValue"> 

बनाम इरादा

<tagName attributeName="attributeValue"> 

एक त्रुटि फेंक एक नज़र लायक हो सकता है जाएगा।

संबंधित मुद्दे