Sql server 从SQL server文本列中删除智能引号
问题:我的公司正在使用Liferay 6.0,它正在升级为Liferay 6.1 GA2。在6.0中,SQL server数据库列中有大量具有智能引号字符的行。在自动升级中,智能报价被替换为“?”。我们计划在升级之前对内容运行find-and-replace-SQL语句以防止此问题。我编写了一个小型Java程序来查找字符的ASCII值。该字符在ANSI(“A”)中的显示方式与UTF-8(“A”)中的显示方式不同A”)。在前一句中,我将智能引号字符夹在大写字母A之间Sql server 从SQL server文本列中删除智能引号,sql-server,smart-quotes,Sql Server,Smart Quotes,问题:我的公司正在使用Liferay 6.0,它正在升级为Liferay 6.1 GA2。在6.0中,SQL server数据库列中有大量具有智能引号字符的行。在自动升级中,智能报价被替换为“?”。我们计划在升级之前对内容运行find-and-replace-SQL语句以防止此问题。我编写了一个小型Java程序来查找字符的ASCII值。该字符在ANSI(“A”)中的显示方式与UTF-8(“A”)中的显示方式不同A”)。在前一句中,我将智能引号字符夹在大写字母A之间 public class C
public class CheckAscii {
public static void main(String args[]) {
asciiVals("A‎A"); //ANSI
asciiVals("AA"); //UTF-8
}
static void asciiVals(String str) {
System.out.println("Length of the string: " + str + " is " + str.length());
for (int j=0; j<str.length(); j++){
System.out.println("Ascii value of char " + str.charAt(j) + " : " + (int)str.charAt(j));
}
System.out.println("");
}
}
此查询获取
select CHAR(226), CHAR(8364), CHAR(381), CHAR(8206)
â null null null
我不知道如何在文本中查找这些字符。有人知道如何在SQL Server中形成智能报价的搜索查询吗?如果数据类型实际上是文本,请首先将列强制转换为VARCHAR(MAX),如下所示:
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(226)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(8364)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(381)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(8206)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(226)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(8364)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(381)+']%'
SELECT [COLUMN] FROM [TABLE] where CAST([COLUMN] AS VARCHAR(MAX)) like '%['+char(8206)+']%'