特殊字符转为html代码C#

时间:2015-04-28 07:37:41

标签: javascript c# asp.net-mvc razor

在我的网络应用程序中,我从服务器发送一些字符串,我在我的JS中使用它们

var Texts = {
    FillAllFieldsError: '@Texts.FillAllFieldsError',
    PasswordChangeSuccess: '@Texts.PasswordChangeSuccess'
}

来自服务器的字符串有一些特殊字符,如“Ø,Æ”等。它们会变成HTML代码“forespø rsel”。

有人知道怎么解决吗?我正在使用utf-8编码

<meta charset="utf-8" />

4 个答案:

答案 0 :(得分:1)

我用过这个

@Html.Raw(Json.Encode(Texts.FillAllFieldsError))

它有效。

答案 1 :(得分:1)

使用@Html.Raw()是正确的方法。

答案 2 :(得分:0)

在项目中加入System.Web以使用HttpUtility.HtmlDecode(MSDN)解码HTML编码的字符串。

答案 3 :(得分:0)

这是做你想做的最安全的方式:

var Texts = @Html.Raw(JsonConvert.SerializeObject(new {
   Texts.FillAllFieldsError,
   Texts.PasswordChangeSuccess
});

^如果需要指定要包含的属性

,请使用anon对象

或使用类似的扩展方法:

using Newtonsoft.Json;

public static class JavascriptExtensions {
   public static IHtmlString AsJavascript<T>(this T value) where T: class{
      return MvcHtmlString.Create(JsonConvert.SerializeObject(value));
   }
}

然后在你看来你可以这样做:

var Texts @Texts.AsJavascript();