में यूटीएफ 8 के रूप में एक स्ट्रिंग संग्रहीत करना मैं सी # में बहुत सी स्ट्रिंग मैनिपुलेशन कर रहा हूं, और वास्तव में तारों को एक बाइट प्रति स्टोर करने की आवश्यकता है। ऐसा इसलिए है क्योंकि मुझे स्मृति में एक साथ टेक्स्ट के गीगाबाइट की आवश्यकता होती है और इससे कम स्मृति समस्याएं उत्पन्न होती हैं। मुझे निश्चित रूप से पता है कि इस पाठ में कभी भी गैर-ASCII वर्ण नहीं होंगे, इसलिए मेरे उद्देश्यों के लिए, यह तथ्य कि System.String और System.Char प्रत्येक चरित्र को दो बाइट्स के रूप में स्टोर करता है, दोनों अनावश्यक और वास्तविक समस्या दोनों हैं।सी #
मैं अपने स्वयं के CharAcicii और StringAscii कक्षाओं को कोडिंग शुरू करने वाला हूं - स्ट्रिंग मूल रूप से बाइट [] के रूप में अपना डेटा रखेगी और स्ट्रिंग मैनिपुलेशन विधियों का खुलासा करेगी जो System.String करता है। हालांकि ऐसा लगता है कि ऐसा कुछ ऐसा करने के लिए बहुत काम करता है जो एक बहुत ही मानक समस्या की तरह लगता है, इसलिए मैं वास्तव में यह जांचने के लिए यहां पोस्ट कर रहा हूं कि पहले से ही कोई आसान समाधान नहीं है। क्या उदाहरण के लिए मैं सिस्टम बना सकता हूं। स्ट्रिंग आंतरिक रूप से डेटा को यूटीएफ 8 के रूप में संग्रहीत करता है जिसे मैंने देखा नहीं है, या समस्या के चारों ओर किसी अन्य तरीके से?
क्या .NET यहां जाने का सबसे अच्छा तरीका है? ऐसा लगता है जैसे सी/सी ++ स्मृति में विशाल तारों के हेरफेर के लिए बेहतर विकल्प होगा। –
जॉन स्कीट ने इस पिछले वर्ष की जांच की http://msmvps.com/blogs/jon_skeet/archive/2011/04/05/of-memory-and-strings.aspx –
[कहीं और] (http://msdn.microsoft.com /en-us/library/windows/desktop/bb540816%28v=vs.85%29.aspx) एक utf8 स्ट्रिंग – Gabber