मैं कुछ चीनी वेब फ़ाइलों को लाने के लिए एक वेब क्रॉलर लिख रहा हूं। Fetched फ़ाइलें utf-8 में एन्कोड किए गए हैं। और मुझे उन फाइलों को कुछ पार्स करने के लिए पढ़ने की जरूरत है, जैसे यूआरएल और चीनी अक्षरों को निकालना। लेकिन मैंने पाया कि जब मैं एक std :: स्ट्रिंग चर में फ़ाइल पढ़ता हूं और इसे कंसोल में आउटपुट करता हूं, तो चीनी वर्ण कचरे के पात्र बन जाते हैं। मैंने boost :: regex को std :: स्ट्रिंग वेरिएबल में लागू किया है और सभी यूआरएल लेकिन चीनी वर्ण निकाल सकते हैं।चीनी वर्ण वाले यूटीएफ -8 एन्कोडेड फ़ाइल को कैसे पढ़ा जाए और उन्हें कंसोल पर सही तरीके से आउटपुट करें?
मैं उन समस्याओं को कैसे हल कर सकता हूं?
पीएस मेरी सीपीपी फाइलें डिफ़ॉल्ट रूप से एएनएसआई के रूप में एन्कोड की जाती हैं, ऑपरेटिंग सिस्टम चीनी भाषा में विन 8 है;
लगता है जैसे आपको यूटीएफ -8 से 'कोड पेज' बदलने की ज़रूरत है, जो कि आपके कंसोल चीनी वर्णों के लिए जो भी कोड पेज उपयोग करता है। यूटीएफ -8 से यूनिकोड में बदलने के लिए मल्टीबाइट टॉवाइड चेयर को कॉल करें, इसके बाद वाइडरहटोमल्टी बाइट यूनिकोड से अपने स्थानीय कोड पेज में बदलने के लिए। – john
शायद कंसोल की गलती शायद। फ़ाइल में '>' 'आईएनजी आज़माएं। यदि यह चीनी वर्णों के साथ वैध यूटीएफ -8 साबित हुआ है, तो आपका प्रोग्राम ठीक काम कर रहा है और यह एक विंडोज़ प्रश्न है। (बेशक, आपको अभी भी अपने प्रोग्राम को विंडोज के आसपास काम करने की आवश्यकता हो सकती है, लेकिन आपको पता चलेगा कि कौन गलती है।) – aib
@ एआईबी हां, जब मैं std :: स्ट्रिंग चर को दूसरी फ़ाइल में रीडायरेक्ट करता हूं, तो सामग्री अभी भी मान्य है Chiese पात्रों के साथ यूटीएफ -8। मेरा कंसोल का कोड पेज '936 है (एएनएसआई/OEM - 简体 中文 जीबीके)" '। –