|
今天刚收到一个网站程序,例行准备测试,使用IIS模拟器运行时,出现 & }4 i+ ^4 W3 O. R6 P7 Z/ g0 v
运行时错误 '800a01b6' 对象不支持此属性或方法: 'Response.CharSet' : L, @* Z' i% ^: T9 f7 t1 D
然后就是提示某个文件的哪一行,那一列。
1 \$ S2 \4 c& V* R% F5 T2 T
8 I2 A9 Q/ @) j4 d& w* f0 [找到那个位置为:Response.CharSet = "gbk" 。
" S! B' T: y4 S
0 e8 m8 Y# @: Y' l* T这个程序本来应该是在完整的IIS下运行,由于用的是模拟器,估计可能是某些功能缺失,于是,替换成另一种方式: # W. L( g6 T4 ~ c- L. Z, [1 u
Response.Addheader "Content-Type","text/html; charset=gbk" 0 j. B3 z6 }* N# B% ]- N" P# P
! U. x7 Z. d7 Y# j1 R7 e; z4 {问题解决~ % F; H- C" k/ J/ Y/ h* X
& ^2 I; Y6 {, U6 `! c , {3 f6 T: X& o$ [1 r
以下是百度到其他的解决的方案,一样的原理。拿出来分享~~
) N8 S5 y; E) g. B O5 l, ?===================================
- d0 b! g+ V. A$ z% Q# f- V
给客户开发的一个web系统,本来计划是在IIS下运行,无奈客户那边的电脑操作系统IIS无论怎样都安装不了,总不能要求客户为了这个web系统重新安装操作系统吧?所以想到了NetBox。
开发的时候都是在IIS下进行调试,然后用NetBox运行,基本上一切正常,客户使用了一段时间后,提出增加一个新的功能,于是用ajax增加了一个新功能,NetBox下运行出错, 错误提示: 运行时错误 '800a01b6' 对象不支持此属性或方法: 'Response.CharSet' --------------------------------------------------------------------- (百度一下,还有很多人遇到同样的错误) Microsoft VBScript runtime error '800a01b6' Object doesn't support this property or method: 'Response.Charset'
检查出错代码: Response.CharSet = "GB2312"
这行代码主要是为了解决ajax用get获得数据时,中文乱码的问题。 删除这行代码后netbox正常运行,但是ajax返回的中文数据成了乱码。 说明 NetBox不支持 Response.CharSet 。
打开netbox的使用手册,依次展开: 对象参考 → Response 对象 → Response 方法 AddHeader 方法 AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题 语法 Response.AddHeader name, value 参数 name 新的标题变量的名称 value 存储在新的标题变量中的初始值 注释 为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。
<% Request.ServerVariables("HTTP_MY_HEADER") %> 示例 下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。
<% Response.Addheader "WWW-Authenticate", "BASIC" %> 注意 前面的脚本仅通知客户端浏览器使用哪个验证。若您在 Web 应用程序中使用该脚本,则一定要启用 Web 服务器的 BASIC 验证。
于是将 Response.CharSet = "GB2312" 替换成: Response.Addheader "Content-Type","text/html; charset=gb2312"
NetBox环境下ajax用get获取数据,中文乱码的问题解决! |