2012-07-28 22 views
17

मेरे पास निम्नलिखित String वर्ण हैं।यूनिकोड वर्ण स्ट्रिंग

string s = "\\u0625\\u0647\\u0644"; 

जब मैं ऊपर अनुक्रम प्रिंट, मैं मिलता है:

\u0625\u0647\u062 

मैं वास्तविक प्रिंट करने योग्य यूनिकोड के बजाय इस \ uxxxx प्रतिनिधित्व वर्ण कैसे मिल सकता है?

s = System.Text.RegularExpressions.Regex.Unescape(s); 
+3

मैं सवाल थोड़ा अस्पष्ट, तो आप उस स्ट्रिंग प्रकार नियंत्रित कर पाते हैं? यदि ऐसा है, तो बस बैकस्लाश में से एक को हटा दें, यानी। "\ U1234 \ u5678"। यदि नहीं, तो आपको संख्या को पार्स करने के लिए कॉलबैक विधि के साथ रेगेक्स का उपयोग करने पर विचार करना चाहिए, इसे चार में परिवर्तित करना होगा, और उसके बाद उस char को स्ट्रिंग – Onkelborg

+0

के रूप में वापस करना चाहिए "आप स्ट्रिंग को नियंत्रित नहीं कर सकते" से आपका क्या मतलब है? आपका परिदृश्य क्या है? –

+1

ठीक है मुझे जवाब मिला: System.Text.RegularExpressions.Regex.Unescape() –

उत्तर

1

प्रयास करें Regex:


मैं इस सवाल का जवाब मिल गया है

String inputString = "\\u0625\\u0647\\u0644"; 

var stringBuilder = new StringBuilder(); 
foreach (Match match in Regex.Matches(inputString, @"\u([\dA-Fa-f]{4})")) 
{ 
    stringBuilder.AppendFormat(@"{0}", 
           (Char)Convert.ToInt32(match.Groups[1].Value)); 
} 

var result = stringBuilder.ToString(); 
3

तुम सच में स्ट्रिंग को नियंत्रित नहीं करते हैं, तो आप उन लोगों के साथ भागने दृश्यों को बदलने के लिए की जरूरत है उनके मूल्य:

Regex.Replace(s, @"\u([0-9A-Fa-f]{4})", m => ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString()); 

और आशा है कि आपके पास \\ भी नहीं है।

+1

सही उत्तर जो काम करता है वह है System.Text.RegularExpressions.Regex.Unescape() –

+0

यह उन यूनिकोड से बचने की तुलना में बहुत कुछ करता है ... – Joey

+1

मेरा मानना ​​है कि MatchEvaluator होना चाहिए: 'm => ((char) कनवर्ट करें .ToInt32 (एम ग्रुप [1]। वैल्यू, 16))। टॉस्ट्रिंग() '। – Otiel

-2

मैं String.Normalize का उपयोग करने का सुझाव दूंगा। आप यहाँ सब कुछ पा सकते हैं:

http://msdn.microsoft.com/it-it/library/8eaxk1x2.aspx

+1

'सामान्यीकृत' यूनिकोड सामान्यीकरण करता है, यह एक * पूरी तरह से * अलग अवधारणा है। – Joey

संबंधित मुद्दे