FAQ |
Kalender |
2008-03-07, 04:18 | #1 | ||
|
|||
Klarade millennium-buggen
|
Min MySQL databas, mina tabeller och fälten är inställda på latin1_swedish_ci
Alla sidorna har charset utf-8 Detta gör att om jag sparar värden från en form på sidorna med utf-8, så visas det fel i databasen där svenska tecken förekommer. Om jag manuellt skriver in något i databasen med svenska tecken, så fungerar det att visa korrekt med utf8_encode(). Finns det något sätt att göra latin1_encode innan jag sparar i databasen? Eller är den enda lösningen på problemet att ställa in alla fält och tabeller i databasen på collation utf_8? |
||
Svara med citat |
2008-03-07, 07:34 | #2 | |||
|
||||
Mycket flitig postare
|
Den bästa lösningen är nog att du gör om alla tabeller till utf-8. Om du skulle börja konvertera mellan charsetsen vid in/utläsning från databasen, vad händer då när en användare skriver in ett tecken som saknar representation i iso-8859-1?
Kom ihåg att du måste köra ALTER TABLE tabell CONVERT TO CHARACTER SET för varje tabell, det räcker inte att bara ändra collation på databasen. Om sajten är live, gå väldigt försiktigt fram |
|||
Svara med citat |
2008-03-07, 09:05 | #3 | ||
|
|||
Mycket flitig postare
|
Citat:
|
||
Svara med citat |
2008-03-07, 09:28 | #4 | ||
|
|||
Klarade millennium-buggen
|
Formuläret skickar data kodade efter hur sidan visas (styrs av besökarens val och de headers som skickas från webbservern)
Att blanda kodningar på det sätt du beskriver skapar problem och är krångligt. Antingen gör du om den statiska texten på webbsidan till ISO och kör allt i ISO, eller så konverterar du tabellernas innehåll till UTF8. collation styr sortering enbart, så att sorteringen blir riktig utefter den kodning man valt. |
||
Svara med citat |
2008-03-07, 14:32 | #5 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Kanske inte den bästa lösningen, men det får duga i nuläget. Sedan så kanske jag gör om tabellerna till utf8. |
||
Svara med citat |
2008-04-25, 00:53 | #6 | ||
|
|||
Klarade millennium-buggen
|
Nu har jag stött på ett liknande problem igen.
Jag har sidan kodad med utf-8 och även charset i head är inställt på utf-8. Ibland så visas dock texten enligt bild nedan. Detta uppkommer bara när - man innan fyller i ett formulär och hamnar på sidan som behandlar datat med GET - man använder IE7 - med Encoding > Auto-select på i webbläsaren Varannan gång blir allt rätt, varannan fel ungefär. Har ni några idéer vad det kan vara? Har hittat samma problem via Google, men ingen lösning. Edit: IE ställer ändå in encoding Western European (Windows) när problemet uppkommer. |
||
Svara med citat |
2008-04-25, 08:46 | #7 | ||
|
|||
Klarade millennium-buggen
|
Det kan vara servern som inte ger rätt charset. Det kanske finns en kod codepage i php som det finns i asp?!
|
||
Svara med citat |
2008-04-25, 12:30 | #8 | ||
|
|||
Klarade millennium-buggen
|
Apachedirektivet SetDefaultCharset styr vad som står i headern.
|
||
Svara med citat |
2008-04-25, 18:13 | #9 | ||
|
|||
Klarade millennium-buggen
|
Citat:
|
||
Svara med citat |
2008-04-25, 19:28 | #10 | ||
|
|||
Klarade millennium-buggen
|
Vet inte om IE men i forefox finns det massor av tillägg som berättar om vad som händer, t ex Live HTTP Headers och Tamper Data.
|
||
Svara med citat |
Svara |
|
|