xatic Skrevet 12. mars 2012 Skrevet 12. mars 2012 (endret) Heisann! Jeg er sikkert ikke alene om dette, men ÆØÅ fungerer jo ikke med standard løsningene til PHP. Dvs, funksjoner som ucfirst/strtolower etc. Finnes det noen løsning for dette? eller må jeg til å lage en egen funksjon for dette? Svaret finner du lengre ned i posten! Endret 12. mars 2012 av xatic
etse Skrevet 12. mars 2012 Skrevet 12. mars 2012 Instillingene er i så fall feil på serveren, regner med locale er feil. Sett dette i toppen av scriptet for å overstyre standard-instillinger: setlocale(LC_ALL,"no_NO");
xatic Skrevet 12. mars 2012 Forfatter Skrevet 12. mars 2012 (endret) Dette har jeg prøvd før, og da får jeg bare "������" når tingens skrives ut, og dette skjer ikke ellers når ÆØÅ skrives ut i PHP. setlocale(LC_ALL,"no_NO"); $str = strtolower('ÆØÅ'); echo $str; // result: ������ Endret 12. mars 2012 av xatic
KarmaZ Skrevet 12. mars 2012 Skrevet 12. mars 2012 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
xatic Skrevet 12. mars 2012 Forfatter Skrevet 12. mars 2012 (endret) Hvorfor kan jeg ikke bruke <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> :EDIT: Prøvde med, <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> og dette ga meg bare, "ã†ã˜ã…" Endret 12. mars 2012 av xatic
KarmaZ Skrevet 12. mars 2012 Skrevet 12. mars 2012 Fordi det er html, paste i <head> Edit, vis oss koden din, så blir problemet løst :]
xatic Skrevet 12. mars 2012 Forfatter Skrevet 12. mars 2012 (endret) Er ikke så mye, driver bare og tester, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="author" content="" /> <title></title> </head> <body> <?php setlocale(LC_ALL,"no_NO"); $str = strtolower('ÆØÅ'); echo $str; ?> </body> </html> Endret 12. mars 2012 av xatic
JohndoeMAKT Skrevet 12. mars 2012 Skrevet 12. mars 2012 PHP har ingen problemer med æøå, det er nok brukerfeil. Første spørsmål: Hvilket tegnsett lagrer du kildekoden i?
JohndoeMAKT Skrevet 12. mars 2012 Skrevet 12. mars 2012 Ok. Bruk mb_ versjonene av strengfunksjonene, som mb_strtolower og mb_substr. Jeg ser at ucfirst desverre ikke har en mb_-variant, så der må du kombinere mb_strtolower, mb_strtoupper og mb_substr for effekten du ønsker.
xatic Skrevet 12. mars 2012 Forfatter Skrevet 12. mars 2012 Da ble det slik, lagde en enkel funksjon som løste problemet. function nor_ucfirst($str) { $length = mb_strlen($str,'UTF-8'); $x= mb_strtolower($str,'UTF-8'); $strx = mb_strtoupper(mb_substr($str,0,1,'UTF-8'),'UTF-8'); $stry = mb_substr($x,1,$length,'UTF-8'); return $str = $strx . $stry; } echo nor_ucfirst('åasåæødlawd');
JohndoeMAKT Skrevet 12. mars 2012 Skrevet 12. mars 2012 (endret) Du kan lett skrive den funksjonen mye penere: (imo) function x_mb_ucfirst($string) { return mb_strtoupper(mb_substr($string, 0, 1)) . mb_strtolower(mb_substr($string, 1)); } mb_internal_encoding('UTF-8'); echo x_mb_ucfirst('æøå'), "\n"; Endret 12. mars 2012 av JohndoeMAKT
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå