从MySQL数据中删除奇怪的字符

And*_*ell 5 mysql

在我所做的所有导入和导出之间的某个地方,我运行的博客上的很多文本都充满了怪异的重音A字符.例如:

http://teamsoell.com/andy/petnames(铆钉内容,我知道)

当我使用mysqldump导出数据并将其加载到文本编辑器中,目的是使用搜索和替换来清除不良字符时,搜索只匹配每个"a"字符.

有没有人知道我能成功捕获这些字符并摆脱它们,无论是直接在MySQL中还是使用mysqldump然后重新导入内容?

Rya*_*n P 11

这是编码问题; 这Â是一个 Unicode中的不间断空格(HTML实体),以Latin1显示.

您可以尝试这样的事情......首先我们检查以确保匹配正常:

SELECT * FROM some_table WHERE some_field LIKE BINARY '%Â%'
Run Code Online (Sandbox Code Playgroud)

这应该返回任何行some_table,其中some_field有一个不好的性格.假设它正常工作,你找到了你正在寻找的行,试试这个:

UPDATE some_table SET some_field = REPLACE( some_field, BINARY 'Â', '' )
Run Code Online (Sandbox Code Playgroud)

这应该删除那些字符(基于你链接的页面,你真的不想要那里,因为你最终会在句子之间连续三个空格等,你应该只有一个).

如果它不起作用,那么您将需要查看正在使用的编码和排序规则.

编辑:刚添加BINARY到字符串; 无论编码如何,这都应该有效.