【发布时间】:2014-07-11 03:39:04
【问题描述】:
如果我在经典 ASP 页面上执行诸如此类的操作:
if instr(tmp, "®") then tmp = replace(tmp, "®", "®")
if instr(tmp, "™") then tmp = replace(tmp, "™", "™")
if instr(tmp, "©") then tmp = replace(tmp, "©", "©")
replace 函数实际上已经在执行内部指令了吗?如果是这样,上面的代码是否应该简单地更改为:
tmp = replace(tmp, "®", "®")
tmp = replace(tmp, "™", "™")
tmp = replace(tmp, "©", "©")
什么是资源效率更高的?它们被用于各种场景,例如在 SQL 语句中包裹用户内容等......
【问题讨论】:
-
@lankymart 感谢您的时间和建议。有时候,生活并不是那么简单。对于一个非常大的全球组织,我的情况很复杂。数据库非常庞大,与之互操作的系统和进程的数量很高,而且大部分没有记录。我们正在寻找插入数据的系统阵列中的所有途径,并将解决这些潜在问题。与此同时,我们必须处理我们面前的东西和我们所看到的东西。 IMO 我的问题不仅有效而且对其他人有用。感谢您和其他好人的建议。
-
那么您有一个大型数据库,多年来一直在输入损坏的数据?
-
是的,没错。我是这个行业的新手,这些问题早在我之前就已经存在了。有 asp 页面、vbs 作业、批处理作业、来自其他系统(如 SAP)的数据等等。更不用说它的多语言了。 IMO您建议“删除此代码”是非常消极的(在这种情况下更不用说错误了)。如果我坐下来讨论这个问题,什么都做不了。必须替换数据。
-
你错过了你刚才提到的点,它是多语言的,但它存储了不适合国际化的损坏数据,如果它不能处理像
©这样的简单内容,你希望如何处理更具挑战性的字符集?我已经使用多语言经典 asp 应用程序多年了,我的建议是在继续之前解决编码问题,否则你会让自己陷入痛苦的世界。你可能认为我是消极的,但老实说,你做的弊大于利。Replace()修复错误编码的多字节字符不是答案。 -
对于任何关注这个的人来说,这都与 OPs 原始问题有关,这是它的一部分 - stackoverflow.com/q/24666723/692942
标签: vbscript asp-classic