Моя база данных находится в latin1
и полна â"
или '��"'
(в зависимости от того, установлен ли мой терминал на latin1 или unicode, соответственно). Исходя из контекста, я думаю, что они должны быть эмдаши Похоже, что они вызывают неприятные ошибки, когда отображаются (или не отображаются) в IE. Я хотел бы найти и заменить их. Проблема в том, что ни символы â, ни match не совпадают с replace
. Выполнение запроса:
update TABLE set COLUMN = replace(COLUMN,'��"','---');
Выполняется без ошибок, но ничего не делает (изменено 0 строк). Мне ясно, что символ «знак вопроса в ромбе» не совпадает, когда я копирую его в терминал. Есть ли способ узнать его код и сопоставить его с этим или что-то? Консоль mysql
невероятно близка к возможности сделать это в одну строку, поэтому я бы не стал писать сценарии вне терминала, если смогу избежать этого.
БД размещена на Amazon RDS, поэтому я не могу установить регулярное выражение udf, на которое я видел ссылки в других вопросах здесь. В долгосрочной перспективе мне нужно будет должным образом преобразовать всю базу данных в utf8, но мне нужно исправить эту проблему сразу.
EDIT:
Я выделил плохого персонажа с помощью hexdump
, это e2 80 (я не думаю, что это соответствует какому-либо юникодному символу). Как я могу передать это функции замены?
update TABLE set COLUMN = replace(COLUMN, char(0xe2,0x80),'---');
ничего не делает.