Unicode字符串

我有以下String

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

当我打印上面的序列时,我得到:

 \u0625\u0647\u062 

如何获得真正可打印的Unicode字符而不是此\ uxxxx表示?


我找到了答案:

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

如果你真的不控制字符串,那么你需要用它们的值替换这些转义序列:

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

并希望你也没有逃脱。

试试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(); 

我建议使用String.Normalize 。 你可以在这里找到一切:

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