Замена символов в другой кодировке - PullRequest
0 голосов
/ 02 апреля 2011

Я импортировал данные в таблицу из резервной копии, которую мне дали.Теперь я понял, что эта резервная копия была сделана из базы данных с другим сопоставлением, и поэтому у меня есть недопустимые символы, такие как ├í вместо á.

Как я могу заменить такие символы?

Я пробовал это, но не работает:

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

Также обратите внимание, что я не вижу: ├í, но я вижу í, которому предшествует пустой квадрат.

1 Ответ

1 голос
/ 02 апреля 2011

Где вы «не видите», но [вы видите «перед пустым квадратом»? »

Каков тип данных Table1.Field1? Какое содержимое в двоичном виде некоторых строк Field1 необходимо изменить? Что такое сопоставление Field1, которое вы можете найти с помощью

SELECT SQL_VARIANT_PROPERTY(Field1,'Collation') FROM Table1;

Это может быть так же просто, как изменить оператор UPDATE, указав его содержимое в Unicode:

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

Или это может быть не так. Если нет, было бы полезно, если бы вы опубликовали то, что получили, когда выбираете CAST (Field1 AS VARBINARY (40)) - или любую другую длину, дающую полное содержимое Field1. Возможно, вам придется применить спецификацию сопоставления в выражении REPLACE.

...