我的数据库在latin1
并且充满了â"
or '��"'
(取决于我的终端是分别设置为 latin1 还是 unicode)。从上下文来看,我认为它们应该是 emdashes。在 IE 中呈现(或不呈现)时,它们似乎会导致令人讨厌的错误。我想找到并替换它们。问题是 â 和 � 字符都不匹配replace
. 运行查询:
update TABLE set COLUMN = replace(COLUMN,'��"','---');
执行没有错误,但不执行任何操作(更改了 0 行)。我很清楚,当我在终端中复制“菱形中的问号”字符时,它不匹配。有没有办法找出它的代码并与之匹配?mysql
控制台非常接近能够在一行中执行此操作,因此如果可以避免的话,我宁愿不在终端之外编写脚本。
该数据库托管在 Amazon RDS 上,因此我无法安装我在此处的其他问题中看到的 regexp udf。从长远来看,我将不得不将整个 db 正确转换为 utf8,但我需要立即解决这个渲染问题。
编辑:
我用hexdump
e2 80 隔离了坏字符(我认为这不对应于任何 unicode 字符)。如何将其提供给替换功能?
update TABLE set COLUMN = replace(COLUMN, char(0xe2,0x80),'---');
不做任何事情。