Trim()
将删除尾随空格。因此,如果您的字符串值以看起来像空格的东西结尾,但没有被 删除Trim()
,那么它实际上可能不是空格字符。另一种可能性是一个空格,后面跟着一个不可见的字符。
无论哪种方式,知道最后一个字符实际上是什么都会很有用。
SELECT Asc(Right(your_string, 1)) AS ascii_value
FROM YourTable;
一旦你知道那个角色是什么,你就可以决定如何最好地摆脱它。
我不知道对你来说最好的方法是什么。从评论中出现的细节来看,麻烦的字符似乎是一个不间断的空格,ASCII 160。当它出现在字符串的末尾时,你想丢弃它。在这种情况下,也许您还想丢弃在不间断空格之前的任何常规空格字符。但是,如果字符串中的其他地方存在不间断空格,则您希望保留这些空格。
此外,您似乎希望对存储在 Access 表中的现有数据以及使用 VBScript 抓取过程收集的新传入数据执行此操作。在 VBScript 中,查询不能使用自定义 VBA 函数或Replace()
函数。所以我不知道在没有看到你的抓取代码的情况下对新数据说什么。对于现有数据,您可以使用UPDATE
类似于您在问题中建议的语句,该语句应该在 VBScript 或 Access 会话中工作。
UPDATE YourTable
SET your_string = Left(your_string, Len(your_string) -1)
WHERE Asc(Right(your_string, 1)) = 160;
如果您还想丢弃尾随不间断空格之前存在的任何空格,请合并Trim()
.
UPDATE YourTable
SET your_string = Trim(Left(your_string, Len(your_string) -1))
WHERE Asc(Right(your_string, 1)) = 160;