【发布时间】:2022-01-13 05:18:44
【问题描述】:
我有一个 SQL Server 表,其中有一列类型为 TEXT 的列,可以存储不同格式的候选人简历。 RTF 是最常见的一种,但我们经常从 3rd 方转换器获取简历数据,该转换器将简历存储为特殊字符(可能是 Unicode 或我不知道它们是什么)。
-
如何搜索我的表以找到所有包含这些特殊字符的行?例如id = 4,6,7,9等的行都是带有特殊字符的记录。
-
这些特殊字符叫什么格式?统一码??
【问题讨论】:
-
根据您对“特殊”字符的定义,您可能会发现 this SO accepted answer 很有帮助。
-
ntext和text数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)或varchar(max)。 See details here -
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
-
特殊字符是否出现在普通的 RTF 文档中?如果没有,搜索RESUME_TEXT不是以
{\rtf1开头的记录不是更容易吗? -
首先尝试看看这些字符是什么,您可能会这样做:` select cast(left(cast(resume_text as varchar(max)),20) as varbinary(max))` 用于示例行。如果您使用 SSMS,这应该显示为一串十六进制字符(0x 后面的每一对都是一个字节;其中一个或多个代表一个字符,它们代表什么字符取决于编码;我们可以尝试使用ASCII/Unicode 表。但他们可能刚刚上传了一个 PDF 文档,例如;然后字节不是编码字符。
标签: sql sql-server unicode encoding character-encoding