2013-02-22 76 views
0

在我的ASP.NET MVC 3项目,我已经在我的母版页设置字符编码Javascript和字符编码

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

然后,在我看来,我有

<script type="text/javascript" charset='UTF-8'> 
     $(function() { 
      $('#my-btn').click(function() { 
        $(this).val('@MyProject.Resources.OrderButton'); 
      }); 
     }); 
    </script> 

什么给我的值为Zam&#243;w而不是Zamów。资源文件的第一行是:

<?xml version="1.0" encoding="utf-8"?> 

任何想法如何解决它?

回答

2

传递服务器端值的JavaScript变量正确的方法是以下内容:

var value = @Html.Raw(Json.Encode(MyProject.Resources.OrderButton); 
$(this).val(value); 

这将输出代码是完全安全的,正确编码将被传递到一个JavaScript功能。这也将妥善处理您的字符串包含字符,如',新行,...将打破你的JavaScript代码的情况。

而且你不应该在意某些字符是HTML还是其他编码。重要的是,它们将被正确编码为浏览器或符合HTML的客户端才能正确使用。

+0

你是对的一如既往,谢谢:) – Tony 2013-02-22 15:50:34

+0

不知道为什么,但ReSharper intellisense抱怨'语法错误'时写'没有'。 – 2014-01-15 07:59:46