>Leif Neland wrote:
>> Hvorledes får man ucwords til at fungere med utf8?
>>
>> echo setlocale(LC_ALL,"da_DK.utf8");
>> echo "<br>";
>>
>> Men ÆØÅ er altid uppercase:
>> da_DK.utf8
>>
>> fanØ Æbler og Ål
>> FANØ ÆBLER OG ÅL
>> FanØ Æbler Og Ål
>>
>> End ikke den desperate version:
>> utf8_encode(ucwords(strtolower(utf8_decode($str)))); giver det ønskede
>> resultat.
>>
>> Så hvad fungerer så? Skal jeg ligefrem til at lave det selv med replace?
>Prøv at tilføje følgende inden konverteringen
>setlocale(LC_CTYPE,'da_DK.utf8');
Burde være det samme som setlocale(LC_ALL,"da_DK.utf8");
> Alternativt årøv evt. med mb_strtolower....
Giver "fan?s?e og b?" (Hvis det overhovedet kommer igennem news)
Prøvede også mb_convert_case($str,MB_CASE_TITLE,"da_DK.utf8");
Det giver
Warning: mb_convert_case() [function.mb-convert-case]: Illegal character
encoding specified in posthuse.php on line 27
Warning: mb_convert_case() [function.mb-convert-case]: Unknown encoding
"da_DK.utf8" in posthuse.php on line 27
Selvom da_DK.utf8 er med i locale -a.
Så er da_DK.utf8 åbenbart ikke kendt for mb_ funktionerne.
Prøvede også
function myucwords($str) {
return
ucwords(str_replace(array("Æ","Ø","Å"),array("æ","ø","å"),strtolower($str)));
};
Men det laver jo også æøå med småt i begyndelsen af ord.
Suk...
--
Johan Holst Nielsen
Freelance PHP Developer -
http://phpgeek.dk