FAQ |
Kalender |
2008-05-12, 23:57 | #1 | ||
|
|||
Nykomling
|
Tjenare. försökte söka och kolla om detta diskuterats tidigare, hittade några exempel men inget som jag tyckte stämde in på det jag undrar över.
Jag har ganska konstiga problem med att jämföra data i min db (mysql) från php för om jag lägger in uppgifter med INSERT i php så blir Ä = Â_ eller nåt sånt. och det blir sen helt fel när jag ska jämföra för att se om användaren redan existerar. :huh: Jag vet ju att problemet antagligen är rätt lätt att lösa, men i vilken ände ska det lösas? ändra charset på databas/phpsidan/nåt annat? Tacksam för svar |
||
Svara med citat |
2008-05-12, 23:58 | #2 | ||
|
|||
Mycket flitig postare
|
Använd samma charset överallt. I PHP-filen, i HTML-koden, i HTTP-headern, i MySQL och i kopplingen mellan PHP och MySQL.
|
||
Svara med citat |
2008-05-13, 00:00 | #3 | ||
|
|||
Nykomling
|
hmm.. jag körde "utf-8" som om jag fatta det rätt ska vara samma som körs på phpmyadmin. men det verkade inte stämma heller.. blir tokig på sånthär
Edit: Kopplingen mellan php & mysql? |
||
Svara med citat |
2008-05-13, 00:06 | #4 | ||
|
|||
Mycket flitig postare
|
|||
Svara med citat |
2008-05-13, 00:11 | #5 | ||
|
|||
Nykomling
|
Tusen tack!!
mysql_query("SET NAMES 'utf8'") or die(mysql_error()); mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); gjorde susen. inte stött på detta tidigare.. |
||
Svara med citat |
2015-11-28, 19:40 | #6 | ||
|
|||
Nykomling
|
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 |
||
Svara med citat |
2015-11-28, 20:06 | #7 | ||
|
|||
Flitig postare
|
Citat:
Värt att bumpa ett inlägg från 2008 med saker de andra redan har sagt? Dessutom är mysql funktionerna deprecated! |
||
Svara med citat |
2015-11-29, 13:23 | #8 | ||
|
|||
Mycket flitig postare
|
mysql_ funktionerna är direkt livsfarliga att använda. Kolla upp PDO och prepared statements.
http://wiki.hashphp.org/PDO_Tutorial...SQL_Developers |
||
Svara med citat |
2015-11-30, 16:11 | #9 | ||
|
|||
Medlem
|
För formulär, använd:
accept-charset="UTF-8" En relaterad fråga, hur bör man hantera de fall där användare(kanske hackers) skickar in t.ex UTF-7 via formulär? Blev inte klok på detta sist jag kollade |
||
Svara med citat |
2015-11-30, 16:28 | #10 | ||
|
|||
Flitig postare
|
Konvertera datan från UTF-7 till 8 så är du klar. Finns mjukvaror som hjälper dig att lista ut vilken teckenkodning som används.
|
||
Svara med citat |
Svara |
|
|