最近发现有一个问题,就是很多人在是本地测试成功的程序,上传到美国服务器上后,发现后台的上传图片功能不行了,出现错误提示,如下:
Microsoft VBScript runtime error '800a0005' Invalid procedure call or argument: 'Chr'
/rabbie2/include/upload.asp, line 81
出现这种错误的问题,主要原因空间放在英文系统下,而在英文系统下程序不能调用“Chr”函数导致的,只要将“chr”修改成“Chrw”就可以解决问题。
相关知识:
Chr 函数返回 String,其中包含有与指定的字符代码相关的字符 。
相关语法:Chr(charcode)
必要的 charcode 参数是一个用来识别某字符的 Long。
说明:
0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意: ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
另外一个情况是如下错误:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Chr'
Upload.asp, line 75
upload.asp 为无组件上传程序
出现如此错误可能是服务器用的是英文版本,因为
Chr 函数返回 String,其中包含有与指定的字符代码相关的字符 。
相关语法:Chr(charcode)
必要的 charcode 参数是一个用来识别某字符的 Long。
说明:0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意: ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
所以把出错的line75行代码:stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
中的chr换成chrw就可以啦!