如何使用C#将“ö”转换为“ö
”?
我尝试使用WebUtility.HtmlEncode
转换为
HttpUtility.HtmlEncode
种方法,但会返回“ö
”。
谢谢!
答案 0 :(得分:2)
根据此站点(https://code.google.com/p/doctype-mirror/wiki/OumlCharacterEntity),ö
字符映射到U+000F6
的unicode值,这与0x246
(.NET使用的)完全相同。基本上.NET给出的和你正在寻找的是相同的。
如果您出于某种原因在语义上支持ö
,则必须创建每个要进行的替换的数组。从那里你可以在你的HTML上使用string.Replace
。如果内存或性能是一个问题,您可能需要研究使用StringBuilder。 LINQ版string.Replace
看起来像:
var myHtml = "long string with ö";
var encodedString = HttpContext.Current.Server.HtmlEncode(myHtml);
var replaceValues = new [] { new KeyValuePair<string, string>("ö", "ö") };
var encodedString = replaceValues.Aggregate(encodedString, (current, value) =>
current.Replace(value.Key, value.Value));
这只是使用LINQ的伪代码,您可以稍微优化一下,但它会为您提供基本的想法。祝你好运!