现在的位置: 首页 > 综合 > 正文

在ASP.net页面引用js时的注意事项

2013年12月13日 ⁄ 综合 ⁄ 共 987字 ⁄ 字号 评论关闭

在ASP.NET页面中经常需要链入一些JS文件,如:



 如果在JS里有中文的话,在一般情况下,在浏览器里会报错脚本错误.
 如果不信可以自己试一试。


 其实是这样的:
 由VS.NET自动生成的项目里,Web.Config中有这么一段:




<
globalization

requestEncoding
="utf-8"


responseEncoding
="utf-8"
/

>
 它定义了该应用发送和接收的流都以utf-8
来编码。





 然而问题就出在这里,由于我们大家使用的都是中文版的Windows,中文版的VS.NET,所以保存文件的默认编码都是
gb2313
,所以当ASP.NET把JS文件发送到客户端时,就会发生编码的错误,从而导致发送了不正确的脚本代码到客户端。





解决的方法很简单,把Web.config里的编码定义改为gb2312即可。




补充:




js文件中escape 方法处理编码










String

对象编码以便它们能在所有计算机上可读,









escape(


charString


)










必选项 charstring

参数是要编码的任意 String
对象或文字。










说明







escape


方法返回一个包含了 charstring
内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他

非 ASCII
字符都用 %
xx
编码代替,其中 xx
等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。










字符值大于 255 的以 %u
xxxx
格式存储。










注意
? escape
方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI
encodeURIComponent
方法。











 







ASP.NET中要支持UTF-8您必须要将web.config中的语系设定,设为支持UTF-8
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />









另外在数据库的部份也必须改使用支持
Unicode的资料格式,如nvarchar、ntext等。
资料在传送上建议使用POST的方式传送资料,如果要使用QueryString的方式传送,最好要加上Server.UrlEncode









如果页面上一部份文字编码正常,一部份文字的编码却出现问题,如




Label




上的文字正常,而




textbox




上的文字却变成乱码。除了上述设定外每一支




aspx




的存盘编码方式最好也一致,都是使用




UTF-8




的编码方式



抱歉!评论已关闭.