sql >> Databasteknik >  >> RDS >> Mysql

Fixa kodningar

Din text har kodats till UTF-8 och sedan omkodats, felaktigt, som Mac Roman .

Du kommer inte att kunna fixa detta i databasen, eftersom MySQL inte känner till Mac Roman-kodningen. Du kan skriva ett skript för att gå igenom varje rad i varje påverkad tabell och fixa texten genom att vända kodnings-/avkodningscykeln. Python är en möjlighet, med ett bra utbud av kodningar:

>>> print u'é'.encode('macroman').decode('utf-8')
é
>>> print u'ö'.encode('macroman').decode('utf-8')
ö
>>> print u'í'.encode('macroman').decode('utf-8')
í

Alternativt, om det inte finns något icke-ASCII-innehåll som inte påverkas av detta problem, kan du prova att använda mysqladmin för att exportera en SQL-dump, konvertera sedan allt på en gång, antingen med ett skript enligt ovan eller, om du har en textredigerare (förmodligen på Mac) som kan göra det, ladda skriptet som UTF-8 och spara det sedan som Mac Roman. Till sist återimportera dumpen med mysql < dump.sql .




  1. Konverteringen misslyckades vid konvertering av datum och/eller tid från teckensträng när datum och tid infogades

  2. Vad händer om MySQL-anslutningar kontinuerligt inte stängs på PHP-sidor?

  3. MySQL ODBC 5.1 Set Namn tillåts inte av drivrutinen

  4. Infoga data i tabellen med php