Citat:
Ursprungligen postat av warpi2
Eftersom jag nu själv fått utstå några timmars felsökning gällande problem med åäö i samband med php och mysql, så tänkte jag med detta inlägg nu bespara framtida programmerare detta.
För att få åäö att fungera problemfritt, se till följande
1. PHP-filen du exekverar är enkodad i UTF-8
2. Använd följande kommando i php-filen "mysql_query("SET NAMES 'utf8'") or die(mysql_error());"
3. Använd följande kommando i php-filen "mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); "
4. Se till att anslutning till databasen i phpmyadmin är "Server connection collation: utf8_general_ci"
5. Se till att mysqltabellen har inställningen "Collation utf8_bin"
6. Se till att mysqlraden har inställningen "Collation utf8_bin"
7. Headern på sidan <head><meta charset="UTF-8"></head>
8. Kolla så att php.ini är konfigurerad med "default_charset = "utf-8""
Och om du följer ovan instruktioner kommer du inte behöva använda följande kommandon
9. utf8_encode() eller utf8_decode()
Om du skall skicka epost med mail() funktionen, se till att ha med följande i headern
10. "Content-type: text/html; charset=UTF-8" . "\r\n";
Lycka till
|
Ett tillägg.
11. För att kunna använda session_start() med UTF-8 så kan man inte spara ner php-filen med t.ex. Notepad eftersom denna lägger till något osynligt extra tecken i början på filen. Man får då felmeddelandet "Warning: session_start(): Cannot send session cookie - headers already sent by...". Själv använder jag notepad++ för att komma runt problemet.