为什么Chr(160)匹配'?'使用某些SetLocale()值?

时间:2018-01-05 18:46:11

标签: vbscript asp-classic

我在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)(这是正常工作的)一个适当的修复程序吗?

0 个答案:

没有答案