2010-08-25 19 views
9

मेरा एएसपी.नेट आवेदन सीएसवी फाइल आयात करता है। वे ज्यादातर स्प्रेडशीट या नोटपैड में सहेजे जाते हैं जो 'चरित्र सेट' के लिए पूछते हैं, उदाहरण के लिए: ISO-8859-2, Windows-1210, DOS-852 या Unicode(UTF-8)कोड पेज और वर्ण एन्कोडिंग के बीच क्या अंतर है?

विकी कहते हैं UTF-8 एक वर्ण एन्कोडिंग है लेकिन Windows-1210 और ISO-8859-2 कोड पेज हैं। क्या ये शब्द अदला-बदले हैं?

.NET यूटीएफ -8 जुर्माना में सहेजी गई फ़ाइलों को पढ़ता है। क्या यह एन्कोडिंग स्वयं ही खोजता है? विकी है

उत्तर

3

आप योएल Spolsky के article और इस पोस्ट here

+0

+1 लेख लिंक के लिए धन्यवाद! –

1

उद्धरण:

"कोड पेज वर्ण एन्कोडिंग का दूसरा नाम है ऐसा नहीं है कि चरित्र किसी विशेष भाषा के लिए सेट का वर्णन करता है मानों की तालिका के होते हैं।।"

http://en.wikipedia.org/wiki/Code_page

और:

"विंडोज कोड पृष्ठों वर्ण या कोड पृष्ठ (अन्य ऑपरेटिंग सिस्टम में वर्ण एन्कोडिंग के रूप में जाना जाता है) 1980 और 1990 से माइक्रोसॉफ्ट विंडोज सिस्टम में इस्तेमाल के सेट हैं । "

1

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

यूनिकोड एन्कोडिंग में कोई मैपिंग नहीं है। उन्हें केवल 32-बिट्स को एक कुशल प्रारूप में निचोड़ने की आवश्यकता है। विभिन्न यूनिकोड एन्कोडिंग बिट्स को निचोड़ने के विभिन्न तरीकों का उपयोग करते हैं। चरित्र में हमेशा एक निश्चित मान होता है (यूनिकोड बोलने में कोडपॉइंट)।

यूटीएफ एन्कोडेड टेक्स्ट फ़ाइलों में बीओएम होना चाहिए, जिससे पाठक एन्कोडिंग को स्वत: पहचानने की अनुमति देता है। टेक्स्ट पेजों के लिए ऐसा कोई सम्मेलन मौजूद नहीं है जो कोड पृष्ठ से एन्कोड किए गए थे। उनमें से अच्छा पाठ प्राप्त करना एक बकवास शूट का थोड़ा सा है। यह एक बुराई है जो पहले से ही मरनी चाहिए :)

+0

हालांकि यूटीएफ -8, यूटीएफ -16, और यूटीएफ -32 पूरी तरह से एल्गोरिदमिक हैं, वहां जीबी 18030 और यूटीएफ-ईबीसीडीआईसी जैसे यूनिकोड एन्कोडिंग मौजूद हैं जिनमें मैपिंग टेबल शामिल हैं। इसके अलावा, यूटीएफ -8 के लिए बीओएम की आवश्यकता या अनुशंसा नहीं की जाती है। – dan04

+0

ब्र्रर, अभी भी मेरे लिए बिट एन्कोडिंग की तरह दिखता है। यूटीएफ -8 कैसे ASCII के पक्ष में है। हां, एक बीओएम की आवश्यकता नहीं है, यह केवल अविश्वसनीय रूप से बेवकूफ है कि इसे शामिल न करें। मुद्दा यह है कि यदि आप इसे * शामिल करते हैं तो एक अच्छी तरह से परिभाषित मानक है। कोड-पेज एन्कोडेड टेक्स्ट के लिए * नहीं * मानक होने के विरोध में। –

+0

इसके बारे में सोचने के लिए आओ, प्राकृतिक राज्य पर प्रकाश डाला गया है। एक अजीब एन्कोडिंग का उपयोग करना या जानबूझकर बीओएम छोड़ना एक 'प्रतिस्पर्धी लाभ' है। –

0

.NET कक्षाएं जैसे StreamReader को यूटीएफ -8 एन्कोडिंग के लिए डिफ़ॉल्ट; नहीं, यह जादुई रूप से पता नहीं चला है।

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