用不同的编码替换字符

时间:2011-04-02 04:13:56

标签: sql sql-server tsql collation

我从我给出的备份中将数据导入到表中。现在我意识到这个备份是从具有另一个排序规则的数据库进行的,因此我的字符无效,例如├í而不是á

如何更换这些字符?

我尝试了这个,但不起作用:

UPDATE Table1
SET Field1 = REPLACE(Field1, '├í', 'á')

另请注意,我看不到:├í,但我看到í前面有一个空方块。

1 个答案:

答案 0 :(得分:1)

你在哪里“看不到├í,但[你]看到前面是一个空方格”?

Table1.Field1的数据类型是什么?需要更改某些Field1行的二进制内容是什么? Field1的整理是什么,您可以使用

找到它
SELECT SQL_VARIANT_PROPERTY(Field1,'Collation') FROM Table1;

可能就像更改UPDATE语句以在Unicode中指定其内容一样简单:

UPDATE Table1 SET
  Field1 = REPLACE(Field1, N'├í', N'á')

或者可能不是。如果没有,如果你发布SELECT CAST(Field1 AS VARBINARY(40))时得到的结果,或者任何长度给出完整的Field1内容,它会有所帮助。您可能需要在REPLACE表达式中应用归类规范。