Javascript和字符编码

时间:2013-02-22 15:36:13

标签: asp.net-mvc-3 character-encoding

在我的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"?>

任何想法如何解决?

1 个答案:

答案 0 :(得分:3)

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

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

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

你不应该关心某些字符是HTML还是其他编码的字符。重要的是,它们将被正确编码为浏览器或HTML兼容客户端正确使用。