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? |
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 :) |
Citat:
|
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. |
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. |
4 bifogad(e) fil(er)
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. |
Det kan vara servern som inte ger rätt charset. Det kanske finns en kod codepage i php som det finns i asp?!
|
Apachedirektivet SetDefaultCharset styr vad som står i headern.
|
Citat:
|
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.
|
Alla tider är GMT +2. Klockan är nu 02:00. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson