से पढ़ने वाले तारों में विशिष्ट यूनिकोड वर्णों को प्रतिस्थापित करना मैं एक्सेल स्प्रेडशीट से पुनर्प्राप्त स्ट्रिंग में कुछ अवांछित वर्णों को प्रतिस्थापित करने का प्रयास कर रहा हूं। कारण यह है कि हमारा ओरेकल डेटाबेस WE8ISO8859P1 वर्ण सेट का उपयोग कर रहा है, जो कई वर्णों को परिभाषित नहीं करता है जो एक्सेल "मददगार" टेक्स्ट में आपके लिए सम्मिलित हैं (घुंघराले उद्धरण, एम और एन डैश इत्यादि) क्योंकि मेरे पास डेटाबेस पर कोई नियंत्रण नहीं है या एक्सेल स्प्रेडशीट कैसे बनाए जाते हैं मुझे पात्रों को किसी और चीज़ से बदलने की आवश्यकता है।एक्सेल
मैं एक स्ट्रिंग इस प्रकार में सेल सामग्री को पुनः प्राप्त:
string s = xlRange.get_Range("A1", Missing.Value).Value2.ToString().Trim();
दृश्य स्टूडियो की पाठ Visualiser में स्ट्रिंग देखने पूर्ण और सही ढंग से लिया गया होना करने के लिए पाठ को दर्शाता है। अगला मैं कोशिश करते हैं और अवांछनीय वर्ण (इस मामले में दाएँ हाथ के घुंघराले उद्धरण चिह्न) में से एक की जगह:
s = Regex.Replace(s, "\u0094", "\u0022");
लेकिन यह (पाठ Visualiser यह अभी भी वहाँ हो को दर्शाता है) कुछ नहीं करता है। कोशिश करते हैं और सत्यापित करें कि चरित्र मैं बदलना चाहते हैं वहाँ में वास्तव में है के लिए, मैं करने की कोशिश की:
bool a = s.Contains("\u0094");
लेकिन यह गलत देता है। हालांकि:
bool b = s.Contains("”");
सत्य लौटाता है।
मेरी (कुछ हद तक कमी) .NET में स्ट्रिंग की समझ यह है कि वे यूटीएफ -16 में एन्कोड किए गए हैं, जबकि एक्सेल शायद एएनएसआई का उपयोग करेगा। तो क्या इसका मतलब है कि मुझे टेक्स्ट के एन्कोडिंग को बदलने की जरूरत है क्योंकि यह Excel से बाहर आता है? या मैं यहाँ कुछ और गलत कर रहा हूँ? किसी भी सलाह की काफी सराहना की जाएगी। मैंने यूनिकोड और एन्कोडिंग के बारे में सभी लेखों को पढ़ और पढ़ा है, लेकिन अभी भी कोई भी बुद्धिमान नहीं हूं।
हां, आप बिल्कुल सही हैं, मेरे हेक्स मान बंद थे। बाहर निकलता है मैं यूटीएफ -16 के बजाय WIN1252 चरित्र सेट के लिए कोड पॉइंट का उपयोग कर रहा था। एक दिन मैं ये सब समझूंगा (जिस पर इसे कुछ समझ में नहीं आता है जो समझ में नहीं आता है)। जवाब के लिए धन्यवाद। –