Detecting utf8 broken characters in MySQL

后端 未结 18 2082
广开言路
广开言路 2020-12-02 05:03

I\'ve got a database with a bunch of broken utf8 characters scattered across several tables. The list of characters isn\'t very extensive AFAIK (áéíúóÁÉÍÓÚÑñ)

Fixing

18条回答
  •  攒了一身酷
    2020-12-02 05:37

    this also solved my problem on some italian chars

    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'á','á');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'ä','ä');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'é','é');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í©','é');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'ó','ó');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'íº','ú');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'ú','ú');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'ñ','ñ');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í‘','Ñ');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'Ã','í');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'–','–');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'’','\'');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'…','...');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'–','-');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'“','"');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'â€','"');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'‘','\'');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'•','-');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name`,'‡','c');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'Â','');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í ','à');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í¨','è');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'íˆ','È');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'€','€');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'eÌ€','è');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í²','ò');
    UPDATE `table_name` SET `column_name` = REPLACE(`column_name` ,'í¹','ù');
    

提交回复
热议问题