FrezzeMedlem sedan apr. 2004114 inlägg När jag kör vanliga utskrifter från databasen skrivs åäö ut som konstiga fyrkanter med "FFFD" i sig. Hela databasen är i utf8_swedish_ci, alla dokumenten är sparade i utf8 och jag kör med <meta http-equiv="content-type" content="text/html;charset=utf-8" /> längst upp (har testat i alla webbläsare, och det blir samma resultat i alla).
Detta gäller bara texten som skrivs ut från databasen, då texten som ligger i html-koden (den "hårdkodade") skrivs ut som den ska.
När jag kollar vad som sparats i databasen visas åäö korrekt, men låter jag en ajaxfunktion spara informationen blir åäö till åäö, men detta syns bara när jag är i phpMyAdmin, för när det väl skrivs ut på sidan blir det som det ska (missförstå inte nu, det är inte ajax jag har problem med, bara tog upp det eftersom jag tycker är konstigt att åäö blir läsligt när det skrivs ut från databasen medan det vanliga inte blir det).
Vad ska jag göra?
- Jag använder mig utav Wamp5 som server.
EDIT: Har bifogat en bild nedan som visar vad jag menar.
Tack på förhand!
überfuzzMedlem sedan apr. 2006409 inlägg Vilken editor använder du till javascripten, hur sparar den filerna? Jag sätter en slant på att den sparar dem som ISO-8859-1.
FrezzeMedlem sedan apr. 2004114 inlägg
überfuzz skrev:
Vilken editor använder du till javascripten, hur sparar den filerna? Jag sätter en slant på att den sparar dem som ISO-8859-1.
Allt redigeras med GoLive, där den påstår att alla mina filer är i utf-8, även jQuery.js-filen är i utf-8.
SPiNMedlem sedan mars 20007 896 inlägg Specificerar du charset när du hämtar informationen med ajax också? Har du UTF-8 som kollation i databasen och tabellerna?
FrezzeMedlem sedan apr. 2004114 inlägg
SPiN skrev:
Specificerar du charset när du hämtar informationen med ajax också? Har du UTF-8 som kollation i databasen och tabellerna?
Använder inte ajax för att hämta, bara för att spara än så länge, vanlig php-kod som skriver ut från databasen. Hela databasen är i UTF-8, och alla tabeller är i UTF-8.
TroxyMedlem sedan mars 20041 505 inlägg Verktyget phpMyAdmin använder i sig en charset, det är viktigt att komma ihåg.
Detta måste man ange manuellt när man loggar in, med alternativet "Språk - Language" (missvisande namn).
Meta-taggen i HTML-koden är egentligen en fullösning.
Det viktiga är att sätta en korrekt HTTP-header med Content-type och charset.
Länk till sidan? :)
FrezzeMedlem sedan apr. 2004114 inlägg
Troxy skrev:
Verktyget phpMyAdmin använder i sig en charset, det är viktigt att komma ihåg.
Detta måste man ange manuellt när man loggar in, med alternativet "Språk - Language" (missvisande namn).
Meta-taggen i HTML-koden är egentligen en fullösning.
Det viktiga är att sätta en korrekt HTTP-header med Content-type och charset.
Länk till sidan? :)
Som jag skrev ovan, använder jag mig utav Wamp5, vilket då betyder att jag kör med en server på min egen dator, därför behöver jag inte logga in på phpMyAdmin samt att jag inte kan länka till sidan (har heller ingenstans att lägga upp sidan på). :p
En fullösning? Men samma problem uppstår på alla mina andra projekt där jag använder metatagen, alltså även där jag inte använder mig utav ajax. Tar jag bort metatagen blir all data från databasen normal, men helt plötsligt blir alla åäö som är "hårdkodade" oläsbara, dvs. tvärtom. Samma sak gäller om jag använder iso-8859-1 i metatagen, utdatan från databasen blir som den ska, medan de hårdkodade åäö blir oläsbara.
Edit: Ändrar jag dokumentkodningen i goLive till iso-8859-1 visas alla tecken som de ska (då ändras också metatagen till iso-8859-1. Fattar inget.
TroxyMedlem sedan mars 20041 505 inlägg
Frezze skrev:
därför behöver jag inte logga in på phpMyAdmin
Hm, vad menar du? :l Du nämner ju phpMyAdmin i ditt första inlägg...
Frezze skrev:
En fullösning?
Ja precis. En <meta> är inte en riktig HTTP-header.
Om det visar sig att din PHP-sida skickar t.ex. Content-type: text/html; charset=iso-8859-1 så blir det knas.
Jag är inte säker, men jag tror att FFFD-tecknet är ett sk. "replacement" för ett felaktigt Unicode-tecken.
Detta tyder på att datat i själva verket inte är sparat som korrekt UTF-8.
Hur ansluter du till MySQL-databasen?
Du måste nämligen ange UTF-8 uttryckligen för anslutningen till MySQL mha. SET NAMES etc.
spangoMedlem sedan juni 20008 205 inlägg Att döma av bilden, verkar det som att "Skåne" lagrats som ISO-8859-1, medan "Av ÅÄÖ, vilka är det som drabbas?" lagras som UTF-8.