Hej!
Försöker byta teckenkodning på en hemsida till utf-8 men har problem med de svenska tecknen som skrivs ut som ?. Mina dokument har charset utf-8 och är sparade som utf-8, så min inmatade text i html filerna skrivs ut korrekt. Php.ini säger för övrigt att default_charset inte har något värde.
När jag skriver ut text från en databas så blir det fel. Jag använder phpmyadmin och matar in datan därifrån. Databasen, tabellen och fältet har Kollationering: utf8_swedish_ci. (Jag testade först med utf8_bin, men då blev all inmatad data omdöpt till BLOB av någon anledning)
Är det något annat man behöver göra för att kunna printa ut utf-8 från en databas?
Tackar på förhand /
stevenetMedlem sedan juni 20001 251 inlägg Hej!
När du exporterar din databaser/tabeller är de troligen i latin 1?
Se till att dina tabeller latin 1, samt berörda fält. Du kan ändra tabellens teckenkodning under operationer i phpMyAdmin.
När du sedan importerar in dessa är standard i phpMyAdmin utf-8, vilket troligen orsakar problemet. Pröva att importera igen, denna gång ställer du in latin1 i rullgardinsmenyn. :)
Lycka till!
Hej,
Förstår inte riktigt vad du menar, varför ska jag behöva använda latin1 när jag vill ha allting i utf-8?
Problemet igen: Min sida är kodad i utf-8, inget problem där. Phpmyadmin verkar ju också vara skrivet i utf-8, om man kollar in källkoden. Problemet är att när jag från hemsidan sparar data (i utf-8 formatet) till databasen, så blir tecknena fel när jag kollar runt i phpmyadmin. Jag exporterade tabellen, som du sa, och datan är sparad som utf-8. Och ja, alla tabeller och fält är kollationerade som utf8_unicode.
Jag fattar verkligen ingenting! Det är precis som att phpmyadmin tolkas som ascii, men den gör ju inte det. Ingen annan som har haft detta problemet?
zcorpanMedlem sedan dec. 20042 245 inlägg
pakmannen skrev:
Problemet är att när jag från hemsidan sparar data (i utf-8 formatet) till databasen
...så hur går det till? Kanske det konverteras till nåt annat innan det hamnar i databasen?
...så hur går det till? Kanske det konverteras till nåt annat innan det hamnar i databasen?
Det körs in direkt i databasen med SQL UPDATE, utan att några som helst funktioner körs på det
Jag rotade runt lite i phpmyadmin och hittade följande under sidan servervariabler och inställningar:
character set client = utf8
(Globalt värde) = latin1
character set connection = utf8
(Globalt värde) = latin1
character set database = latin1
character set results = utf8
(Globalt värde) = latin1
character set server = latin1
character set system = utf8
character sets dir = /usr/local/share/mysql/charsets/
collation connection = utf8_unicode_ci
(Globalt värde) = latin1_swedish_ci
collation database = latin1_swedish_ci
collation server = latin1_swedish_ci
Någon som vet mer specifikt vad allt betyder? På rak arm känns det som att character set database borde vara utf-8 men jag hittar ingenstans jag kan ändra det. Kollationeringen på databasen är utf8_unicode.
Har för övrigt Loopia webhotell, så jag slängde iväg en fråga till deras support, inte för jag är direkt hoppfull... :OO
Nämen titta vad man hittar när man rensar sina bookmarks... Ifall någon får detta problemet framöver kan jag upplysa om att databaskopplingens charset är latin1 som standard i MySQL. Ifall man inte har tillgång till servern kan man skriva över detta i php så här:
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET utf8;');
Kör det efter databasuppkopplingen så ska det funka.
bassebhuMedlem sedan nov. 20016 480 inlägg
pakmannen skrev:
Ifall någon får detta problemet framöver kan jag upplysa om att databaskopplingens charset är latin1 som standard i MySQL. Ifall man inte har tillgång till servern kan man skriva över detta i php så här:
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET utf8;');
Kör det efter databasuppkopplingen så ska det funka.
...det tackar vi för :) Hurra! Löste många problem och jag slapp skapa en ny tråd. Jag nöjer mig med att dra upp en gammal §e