22

私は以下Stringのキャラクターを持っています。

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

上記のシーケンスを印刷すると、次のようになります。

\u0625\u0647\u062

この \uxxxx 表現の代わりに、実際の印刷可能な Unicode 文字を取得するにはどうすればよいですか?

4

5 に答える 5

5

本当に文字列を制御しない場合は、これらのエスケープ シーケンスをその値に置き換える必要があります。

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

そこにも逃げ場がないことを願っています\\

于 2012-07-28T12:05:54.203 に答える
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();
于 2012-07-28T12:04:21.813 に答える
1

Asker は、質問への回答としてこれを投稿しました。

私は答えを見つけました:

s = System.Text.RegularExpressions.Regex.Unescape(s);
于 2021-11-30T19:43:05.113 に答える
-2

の使用をお勧めしますString.Normalize。ここですべてを見つけることができます:

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

于 2012-07-28T12:11:54.843 に答える