首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Server中搜索具有特殊字符的文本?

如何在Server中搜索具有特殊字符的文本?
EN

Stack Overflow用户
提问于 2022-01-13 05:18:44
回答 1查看 699关注 0票数 -2

我有一个具有TEXT类型列的Server表,它将以不同的格式存储候选简历。RTF是最常见的,但我们经常从第三方转换器获得简历数据,它将简历存储为特殊字符(可能是Unicode或我不知道它们是什么)。

  1. 如何搜索我的表以查找具有这些特殊字符的所有行?例如,id =4、6、7、9等的行都是具有特殊字符的记录。

  1. 这些特殊字符叫什么格式?Unicode??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-14 00:43:02

假设“特殊”字符指的是一组可打印的ASCII和某些常见的空白字符之外的任何字符,您可以尝试如下:

代码语言:javascript
复制
DECLARE @SpecialPattern VARCHAR(100) =
    '%[^'
    + CHAR(9) + CHAR(10) + CHAR(13) -- tab, CR, LF
    + CHAR(32) + '-' + CHAR(126) -- Range from space to last printable ASCII
    + ']%'

SELECT
    RESUME_TEXT,
    cast(left(cast(resume_text as varchar(max)),20) as varbinary(max))` -- Borrowed from userMT's comment
FROM RESUME
WHERE RESUME_TEXT LIKE @SpecialPattern COLLATE Latin1_General_Bin -- Use exact compare

对于一些完全有效的扩展字符,例如重音元音、卷曲引号或文本中可能存在的m-和n-破折号,您可能会遇到一些错误。

我的第一个想法是,奇怪的字符可能是一个UTF-8 BOM (十六进制EF,BB,BF),但显示似乎与我期望SQL Server呈现它们的方式不匹配。逆点在默认的windows代码页(1252)中根本不存在。

我们至少需要一些十六进制数据(至少前几个字节)来帮助进一步。通常,常见的二进制文件类型在前3-5字节中有一个可识别的签名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70691768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档