Vbscript 需要删除CSV文件中的无效字符

Vbscript 需要删除CSV文件中的无效字符,vbscript,asp-classic,non-ascii-characters,Vbscript,Asp Classic,Non Ascii Characters,我正在从提供给我的Microsoft SQL数据库生成一个CSV文件,但不知何故,在整个文本中大约24个位置都有无效字符,有数千行数据。当我在我的文本编辑器中打开CSV时,它们会显示为红色的倒置问号。在附带的屏幕截图中有两个问号 复制角色并在文本编辑器中查看“查找/替换”对话框时,我会看到: \x{0D} ……但我不知道那是什么意思。我需要修改生成CSV的脚本,以便将这些字符去掉,但我不知道如何识别它们。我的脚本是用经典ASP编写的 您只需使用和指定Chr191或直接: Replace(your

我正在从提供给我的Microsoft SQL数据库生成一个CSV文件,但不知何故,在整个文本中大约24个位置都有无效字符,有数千行数据。当我在我的文本编辑器中打开CSV时,它们会显示为红色的倒置问号。在附带的屏幕截图中有两个问号

复制角色并在文本编辑器中查看“查找/替换”对话框时,我会看到:

\x{0D}

……但我不知道那是什么意思。我需要修改生成CSV的脚本,以便将这些字符去掉,但我不知道如何识别它们。我的脚本是用经典ASP编写的

您只需使用和指定Chr191或直接:

Replace(yourCSV, Chr(191), "")

这将删除该角色。如果需要将其替换为其他值,请将最后一个参数从更改为其他值,例如


通常,您可以从“运行”菜单中使用charmap.exe Character Map,选择Arial,查找符号并将其复制到剪贴板。然后,您可以使用Asc检查其值,这将返回用于Chr的ASCII代码。

您还可以使用RegEx删除不需要的字符:

Set objRegEx = CreateObject(“VBScript.RegExp”)
objRegEx.Global = True
objRegEx.Pattern = “[^A-Za-z]”

strCSV = objRegEx.Replace(strCSV, “”)
此代码来自以下文章,详细解释了它的功能:

在您的情况下,您需要向模式中添加一些字符:


我可以试试,但我的假设是,红色的倒置问号正是文本编辑器显示的,因为它无法识别字符,而不是因为这是文本中的实际字符。但是,是的,一旦我能够识别角色,REPLACE命令就是我想要使用的。我明白了。我添加了第二个答案,该答案使用了更好的方法来解决我认为的问题。@BBDesign它无法识别字符,因为经典ASP脚本使用错误的编码返回数据。这称为编码不匹配,当您从一种编码错误地转换为另一种编码时会发生。您需要确定正确的编码,并告诉Classic ASP在发送响应时使用该编码。相关:,并解释编码问题和修复该问题的hwo。很抱歉,基本问题是编码错误,这就是它们获取无效字符的原因。仅仅给他们一个去除这些字符的方法并不能解决根本问题……他们不理解经典ASP中的字符编码。像这样的方法将杀死数据中可能已经存在的任何重音字符或其他符号。我的计划是列出所有有效字符,包括重音字符等,并去掉所有其他字符。你认为这样不行吗?
Set objRegEx = CreateObject(“VBScript.RegExp”)
objRegEx.Global = True
objRegEx.Pattern = “[^A-Za-z]”

strCSV = objRegEx.Replace(strCSV, “”)
^[a-zA-Z0-9!@#$&()\\-`.+,/\"]*$