2013-02-22 28 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