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