C#scandic字母为html格式

时间:2014-05-06 12:10:19

标签: c# html

如何使用C#将“ö”转换为“ö”? 我尝试使用WebUtility.HtmlEncode转换为 HttpUtility.HtmlEncode种方法,但会返回“ö”。 谢谢!

1 个答案:

答案 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>("&#246;", "&ouml;") };
var encodedString = replaceValues.Aggregate(encodedString, (current, value) =>
                         current.Replace(value.Key, value.Value));

这只是使用LINQ的伪代码,您可以稍微优化一下,但它会为您提供基本的想法。祝你好运!