将 \u2265 插入 C# 字符串

我有一个包含 a 的数据源\u2265,它是显示为单个字符的更大或等号,如下所示:≥


但是,当数据到达我的应用程序时,它以\\u2265.


我现在不关心为什么\会发生额外的事情。


相反,我只想能够将 转换为\\u2265我\u2265的应用程序内部。


我尝试了各种字符串操作,例如这些,它们要么有语法问题,要么根本不起作用:


disp = dataSource.Replace('\\', '\');  

disp = dataSource.Replace("\\", "\");


int x = dataSource.IndexOf("\\u");

disp = dataSource.Substring(0, x) + dataSource.Substring(x+1);

Substring 技术的部分问题在于\\它被视为单个字符。


千万里不及你
浏览 174回答 2
2回答

慕哥6287543

问题是您的数据源具有\u2265as astring并且没有将其视为char. 如果你string用一个char版本替换这个版本,你会得到你需要的。data = data.Replace("\\u2265", '\u2265'.ToString());的原因ToString()是我们可以使用适当的重载Replace。@Flydog57 提供的更简单的版本:data = data.Replace("\\u2265", "\u2265");受@Jimi 启发的通用版本:Regex r = new Regex(@"\\u[0-9]{4}");var matches = r.Matches(data);var uniqueMatches = matches&nbsp; &nbsp; &nbsp; .OfType<Match>()&nbsp; &nbsp; &nbsp; .Select(m => m.Value)&nbsp; &nbsp; &nbsp; .Distinct();foreach (var m in uniqueMatches){&nbsp; data = data.Replace(m,Regex.Unescape(m));}

鸿蒙传说

另一种更通用的选择(但并不总是适用,它可能会干扰字符串内容)是使用Regex.Unescape()对字符串进行转义:string myString = "\\u2265" + "20180426";myString = Regex.Unescape(myString);将打印≥20180426
打开App,查看更多内容
随时随地看视频慕课网APP