Siden min viser ofte ting som ë, Ã, ì, ù, à i stedet for normale tegn.
Jeg bruker utf8 for header page og MySQL-koding. Hvordan skjer dette?
Dette er utf-8-kodede tegn. Bruk utf8_decode() for å konvertere dem til normale ISO-8859-1-tegn.
Hvis du ser disse tegnene, har du sannsynligvis ikke spesifisert tegnkodingen riktig. Disse tegnene er nemlig resultatet når en UTF-8 flerbyte-streng tolkes med en enkeltbyte-koding som ISO 8859-1 eller Windows-1252.
I dette tilfellet kan ë
kodes med 0xC3 0xAB som representerer Unicode-tegnet ë
(U+00EB) i UTF-8.
Selv om utf8_decode
er en nyttig løsning, foretrekker jeg å korrigere kodingsfeilene i selve tabellen. Etter min mening er det bedre å korrigere de dårlige tegnene selv enn å gjøre "hacks" i koden. Bare gjør en replace
på feltet i tabellen. For å korrigere de dårlig kodede tegnene fra OP:
update <table> set <field> = replace(<field>, "ë", "ë")
update <table> set <field> = replace(<field>, "Ã", "à")
update <table> set <field> = replace(<field>, "ì", "ì")
update <table> set <field> = replace(<field>, "ù", "ù")
Hvor <table>
er navnet på mysql-tabellen og <field>
er navnet på kolonnen i tabellen. Her er en veldig god sjekkliste for de typisk dårlig kodede Windows-1252 til utf-8-tegnene -> Debugging Chart Mapping Windows-1252 Characters to UTF-8 Bytes to Latin-1 Characters.
Husk å ta sikkerhetskopi av tabellen før du prøver å erstatte tegn med SQL!
[*Jeg vet at dette er et svar på et veldig gammelt spørsmål, men sto overfor problemet igjen. En gammel Windows-maskin kodet ikke teksten riktig før den ble satt inn i tabellen utf8_general_ci collated].