0

在我的 ASP.NET MVC 3 项目中,我在母版页中设置了字符编码

<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"?>

任何想法如何解决它?

4

1 回答 1

3

将服务器端值传递给 javascript 变量的正确方法如下:

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

这将输出完全安全且正确编码的代码,以传递给 javascript 函数。这也将正确处理您的字符串包含字符的情况,例如',新行,......这会破坏您的javascript代码。

而且您不应该关心某些字符是 HTML 还是任何编码的字符。重要的是它们将被正确编码以供浏览器或 HTML 兼容客户端正确使用。

于 2013-02-22T15:38:59.257 回答