我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ)
修复给定的表非常简单
update orderItem set itemName=replace(itemName,'á','á');
但是我无法检测到损坏的字符。如果我做类似的事情
SELECT * FROM TABLE WHERE field LIKE "%Ã%";
由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符
到目前为止,我得到的损坏字符列表是
á = á é = é Ã- = í ó = ó ñ = ñ á = Á
是否知道如何使此SELECT正常工作?(二进制搜索或类似的东西)
如何使用另一种方法,即来回转换列以获取正确的字符集呢?您可以将其转换为二进制,然后转换为utf-8,然后转换为iso-8859-1或您使用的任何其他格式。有关详细信息,请参见手册。