我在Classic ASP / VBScript网络应用程序中看到了一些奇怪的行为,我无法弄清楚出了什么问题。基本上,我们正在检查字符串中的不间断空格(Windows-1252和Unicode中的字符代码160)。当脚本的区域设置设置为3076 (zh-CN)
时,不间断空格与字符串中的问号匹配。
这是一个短而甜蜜的复制品;由于szText
没有非中断空格,因此两个消息框都会弹出0
。
dim szText
szText = "Does this match?"
' zh-CN
SetLocale(3076)
Msgbox InStr(szText, Chr(160))
' en-US
SetLocale(1033)
Msgbox InStr(szText, Chr(160))
提出这个问题的另一种方法可能是,Chr(160)
当当前代码页明显不支持语言环境时的行为是什么?即使我们在响应中使用windows-1252代码页,也会切换到ChrW(160)
(这是正常工作的)一个适当的修复程序吗?