मैं अपने एएसपी.NET साइट पर उपयोगकर्ता इनपुट को साफ़ करने के लिए कुछ कोड लिखने पर काम कर रहा हूं। मुझे ASCII वर्ण 145, 146, 147, 148 के सभी संदर्भों को हटाने के लिए इनपुट को साफ़ करने की आवश्यकता है, जो कभी-कभी मेरे मैक उपयोगकर्ताओं से इनपुट प्राप्त कर रहे हैं जो उनके मैक पर एक वर्ड प्रोसेसर में लिखने वाली सामग्री की प्रतिलिपि बना रहे हैं और चिपका रहे हैं।मैन्युअल रूप से ASCII और .NET वर्णों के बीच कनवर्ट करना
मेरा मुद्दा निम्न तीन तारों का है जो मुझे विश्वास है कि एक ही पाठ को आउटपुट करना चाहिए।
string test1 = Convert.ToChar(147).ToString();
string test2 = String.Format("'{0}'", Convert.ToChar(147));
char[] characters = System.Text.Encoding.ASCII.GetChars(new byte[] { 147 });
string test3 = new string(characters);
फिर भी जब मैं निम्नलिखित
txtShowValues.Text = test1 + "*" + test2 + "*" + test3;
मैं test1 के लिए एक खाली मूल्य प्राप्त बराबर करने के लिए एक एएसपी पाठ बॉक्स सेट, test2 ठीक से काम करता है, और एक के रूप में test3 आउटपुट '?'।
कोई बता सकता है कि अलग-अलग क्या हो रहा है। मुझे आशा है कि इससे मुझे यह समझने में मदद मिलेगी कि .NET 128 से अधिक अक्षरों के लिए ASCII मानों का उपयोग कैसे कर रहा है ताकि मैं एक अच्छी स्क्रबिंग स्क्रिप्ट लिख सकूं।
संपादित करें
मेरे द्वारा वर्णित मूल्य (145 - 148) घुंघराले उद्धरण हैं। तो सिंगल बाएं, सिंगल राइट, डबल बाएं, डबल राइट।
"सही तरीके से काम करता है" मेरा मतलब है कि यह मेरे ब्राउज़र पर एक घुंघराले उद्धरण आउटपुट करता है।
दूसरा संस्करण
निम्नलिखित कोड (उत्तर में उल्लिखित) घुंघराले उद्धरण भी आउटपुट करता है। तो शायद समस्या परीक्षण 3.
char[] characters2 = System.Text.Encoding.Default.GetChars(new byte[] { 147 });
string test4 = new string(characters2);
तृतीय संपादित
में ASCII उपयोग कर रहा था मैं एक मैक है कि मैं उधार ले सकता मिल गया और समस्या नकल करने में सक्षम था। जब मैं टेक्स्ट को कॉपी और पेस्ट करता हूं जिसमें मैक पर वर्ड से मेरे वेब ऐप में उद्धरण चिह्न होते हैं तो यह घुंघराले उद्धरण (147 और 148) चिपकाता है। जब मैं सहेजता हूं घुंघराले उद्धरण डेटाबेस में सहेजे जाते हैं, तो मैं उस कोड का उपयोग करूंगा जिसने आप सभी को उस सामग्री को साफ़ करने के लिए मेरी मदद की।
FOUTH EDIT
प्रतिक्रियाओं के आधार पर अधिक नमूना कोड लिखने के लिए कुछ समय बिताएं और ध्यान दें कि एएसपी.नेट में मल्टीलाइन टेक्स्टबॉक्स के साथ इसका कुछ संबंध है। यहां अच्छी जानकारी थी, इसलिए मैंने बस एक नया प्रश्न शुरू करने का फैसला किया: ASP.NET Multiline textbox allowing input above UTF-8
.NET यूनिकोड का उपयोग करता है। –
लेकिन फिर test2 क्यों काम करता है? अगर कुछ भी मुझे टेस्ट 3 काम करने की उम्मीद है। –
'सही तरीके से काम करता है' से आपका क्या मतलब है? यह एक अदृश्य नियंत्रण चरित्र है - इसे रिक्त स्ट्रिंग के रूप में प्रदर्शित करना है। आप किस आउटपुट की अपेक्षा करते हैं? –