有什么方法可以将“ U + 4E0B”之类的Unicode转换为其等效字符?
Ex- {\ U + FF8D \ U + FF9E \ U + FF9D \ U + FF84 \ U + FF9E \ U + FF97 \ U + FF72 \ U + FF9D-\ U + 4E0B}
感谢任何帮助!
答案 0 :(得分:2)
简单的方法是对代理使用正则表达式+ Regex.Replace()
string str = @"\U+FF8D\U+FF9E\U+FF9D\U+FF84\U+FF9E\U+FF97\U+FF72\U+FF9D - \U+4E0BFooBar";
var rx = new Regex(@"\\U\+([0-9A-F]{4})");
string str2 = rx.Replace(str, m =>
{
ushort u = Convert.ToUInt16(m.Groups[1].Value, 16);
return ((char)u).ToString();
});
不清楚是否要区分大小写(以使\u+ff9e
有效),然后使用:
var rx = new Regex(@"\\[Uu]\+([0-9A-Fa-f]{4})");