Visa ett inlägg
Oläst 2009-01-12, 09:32 #9
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Det verkar fungera i alla fall, men ditt problem var att du ville byta ut ett hexvärde som passar en ISO-8859 i en utf-8 sträng, och den finns ju inte där.


jag skulle starkt rekommendera att utgå från utf8 , eventuellt kontrollera ditt indata så att det säkert är i rätt kodning, och sen kan du i lugn och ro byta vilka tecken du vill.
Ett sätt att kontrollera vilken kodning strängen är med mb_detect_encoding()
Typ så här:

Kod:
$string= 'åäö';
$string_iso = *mb_convert_encoding($string,'ISO-8859-1',auto);

echo mb_detect_encoding($string,'UTF8,ISO-8859-1').' '.urlify($string).'<br>';
echo mb_detect_encoding($string_iso,'UTF8,ISO-8859-1').' '.urlify($string_iso).'<br>';
function urlify($str) {
 * * * $str=preg_replace('/\xE5/','a',$str); *
 * * * return $str;
}
Utdata:

Citat:

UTF-8 åäö
ISO-8859-1 a??
Som du ser så fungerar din regexp helt ok så länge du matar den med ISO. Men om du har UTF8 i strängen från början så ska du inte ändra utan utgå från den kodning du har.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat