gpt4 book ai didi

sql - 删除 SQL Server 字段末尾的隐藏字符

转载 作者:行者123 更新时间:2023-12-01 11:00:28 25 4
gpt4 key购买 nike

我有一个奇怪的情况显示来自 SQL 服务器的值。 SQL Server 2008 字段中存储了一个值,该值在从服务器查询时隐藏并在 Management Studio 中显示(见下文)。

测试模板2

但是当在 HTML 编辑器的屏幕上显示时,它显示为 ? (见下文)

测试模板2?

当我检查 ascii 值时,它显示 63。不确定用户如何将这个特殊值输入到 SQL Server 的这个字段中。当我通过输入测试时?进入输入字段并显示它工作正常没有任何问题。我不想盲目地从此字段中删除最后一个字符。我正在尝试确定一个解决方案来识别这个不可见的值,并在存储或显示时将其删除。非常感谢任何解决方案。

正如下面的评论所表明的那样,这原来是 Unicode 8203(零宽度空间)。我的下一个问题是如何在不解析每个字符的情况下在 T-SQL 的一条语句中替换此 Unicode 8203?

最佳答案

使用REPLACE删除零宽度空格字符:

-- setup unicode string containing zero-width character
DECLARE @UnicodeReplace NVARCHAR(5) = N'Test' + NCHAR(8203);

-- check that unicode string length is 5,
-- and prove existence of zero-width space character matching unicode 8203
SELECT @UnicodeReplace AS String,
LEN(@UnicodeReplace) AS Length,
UNICODE(SUBSTRING(@UnicodeReplace, 5, 1)) AS UnicodeValue

-- replace and prove the unicode string length is reduced to 4
SELECT REPLACE(@UnicodeReplace, NCHAR(8203), N''),
LEN(REPLACE(@UnicodeReplace, NCHAR(8203), N'')) AS Length;

SQL Fiddle

关于sql - 删除 SQL Server 字段末尾的隐藏字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com