一尘不染

在MySQL中检测utf8损坏的字符

mysql

我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ)

修复给定的表非常简单

update orderItem set itemName=replace(itemName,'á','á');

但是我无法检测到损坏的字符。如果我做类似的事情

SELECT * FROM TABLE WHERE field LIKE "%Ã%";

由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符

到目前为止,我得到的损坏字符列表是

á = á
é = é
í- = í
ó = ó
ñ = ñ
á = Á

是否知道如何使此SELECT正常工作?(二进制搜索或类似的东西)


阅读 177

收藏
2020-05-17

共1个答案

一尘不染

如何使用另一种方法,即来回转换列以获取正确的字符集呢?您可以将其转换为二进制,然后转换为utf-8,然后转换为iso-8859-1或您使用的任何其他格式。有关详细信息,请参见手册

2020-05-17