मैं सी में एक HTML पार्सर लिख रहा हूं, और the W3C guidelines on parser implementation का सही ढंग से अनुसरण करने के लिए देख रहा हूं। मुख्य बिंदुओं में से एक यह है कि पार्सर बाइट्स की बजाय यूनिकोड कोड पॉइंट्स की धारा पर काम करता है, जो समझ में आता है।सी में बाइट्स से यूनिकोड कोड पॉइंट्स का स्ट्रीम?
असल में, तो, ज्ञात वर्ण एन्कोडिंग के एक बफर दिया (मैं या तो एक स्पष्ट इनपुट एनकोडिंग दिया जाएगा, या एक अच्छा अनुमान लगाने के लिए एचटीएमएल 5 Prescan एल्गोरिथ्म का उपयोग करेगा), क्या सी में सबसे अच्छा तरीका है - आदर्श क्रॉस-प्लेटफार्म, लेकिन यूनिक्स को चिपकाना ठीक है - यूनिकोड कोड पॉइंट्स के बराबर अनुक्रम पर फिर से शुरू करने के लिए?
कुछ उचित आकार के बफर आवंटित कर रहे हैं और iconv
का उपयोग करने का तरीका उपयोग कर रहे हैं? क्या मुझे आईसीयू देखना चाहिए? U16_NEXT
जैसे मैक्रोज़ मेरे काम के लिए उपयुक्त हैं, लेकिन आईसीयू दस्तावेज अविश्वसनीय रूप से लंबे समय से हवादार है, और यह देखने में थोड़ा मुश्किल है कि चीजों को एक साथ कैसे चिपकाया जाए।
'iconv' एक अच्छी शुरुआत की तरह लगता है। यह अवधारणात्मक रूप से सरल और व्यापक रूप से उपलब्ध है। –
ठीक है, मैं कोशिश करूँगा 'iconv'। क्या आप कहेंगे कि यह यूटीएफ -32 में परिवर्तित करने के लिए सबसे अधिक समझ में आता है? भले ही यह तर्कसंगत रूप से लगभग बेकार एन्कोडिंग है, इसका मतलब यह होगा कि प्रत्येक 4 बाइट्स वास्तव में यूनिकोड कोड पॉइंट का प्रतिनिधित्व करेंगे। –
हां, वास्तव में। यूटीएफ -32 एक बिल्कुल ठीक एन्कोडिंग है। –