Kjapp og trygg hosting for Wordpress

omskrivning av symboler

Bjørnar

Gründer
quickfix:
PHP:
$uri = strtolower(str_replace(array('r', 'b', '%E6', '%F8', '%E5'), array('ggg', 'z', 'æ', 'ø', 'å'), $uri));
 
Jeg er litt sløv jeg også, burde skjønt det ut ifra variabelen.

Det lar seg ikke gjøre ved PHP, så vidt jeg vet og kan forstå.
Den omgjøringen er jo en handling som apache\iss foretår seg når header blir sendt, så jeg er dessverre ikke helt sikker på hvordan man kan endre det.

Så beklager. Jeg kan ikke hjelpe deg på dette området..
Men skal se litt, slike ting er jo greit å vite. Hyler ut hvis jeg finner noe. Håper du gjør det samme :)
 

Pong

Jeg selger sʇɥƃıluʍop :)
Det du får inn er ikke nødvendigvis feil; det kan være at det du spytter ut ikke blir rett (det er jo det du sjekker for å se hva du har fått inn).
Selv om php får servert et eller annet fra Apache, så betyr det ikke at du ikke kan gjøre noe med det. $_REQUEST array er bare en array, og den er ikke read-only.

Jeg antar at grunnen til at du vet at
Kode:
$uri = strtolower(str_replace(array('r', 'b', '%E6', '%F8', '%E5'), array('ggg', 'z', 'æ', 'ø', 'a'), $uri));

Men kan du sjekke om $uri faktisk inneholder "%E6" etc? Og at 'feilen' ikke er at når du echo'er $uri, at det er *det* som blir feil. Altså: kan du sjekke hvordan dette ser ut:
echo urlencode($uri);
echo htmlentities($uri);
echo htmlspecialchars($uri,ENT_COMPAT,'UTF-8');

(aller best med en lenk så får vi sjekket char-encoding også).
 

Tonny Kluften

Administrator
Dette er den gamle urlen:
Kode:
http://www.mineoppskrifter.no/view_recipe.php?id=5461&recipe_title=Vaffelr%F8re

Kode:
Den blir omskrevet til http://www.mineoppskrifter.no/speltbr%F8d
, men skulle ha blitt omskrevet til
Kode:
http://www.mineoppskrifter.no/speltbrød

Jeg fikk et svar på et annet forum:
"You have a problem.
Per RFC 1738 that is the controlling reg, valid URLs are to only contain characters that are within the US-ASCII coded character set. If a character is not in this character set then it can be encoded, what is what is happening when you see the % mark.
Ideally you want to not have those characters in your urls. If you do, some will figure it out with the use of encoding, others will not. This is an obvious problem, one for which there is no workaround."
 
Sist redigert:

Pong

Jeg selger sʇɥƃıluʍop :)
Vel, det stemmer.. for at en hyperlenk skal være rett kan den ikke inneholde ulovlige tegn, og derfor bruker man urlencode (som bl.a. erstatter en ø med en %F8).

Det ser ut at FF ikke viser %F8 etc forresten, så det kan man ikke "stole" på:
* gikk til google.no med ff
* skrev speltbrød og klikket på søk
* så at det sto "q=speltbrød" i adresse-linjen

* gikk til google.no med ie
* skrev speltbrød og klikket på søk
* så at det sto "q=speltbr%C3%B8d" i adresse-linjen (ikke %F8 fordi dette er UTF-8)

Selv bruker jeg da en "normalize"-funksjon, som bytter ut ting som ß, è, ç, Ý etc samt æøå til ascii-tegn, slik at det ser "noenlunde" lesbart ut.

Så lenken din hadde blitt "http://www.mineoppskrifter.no/speltbrod".
 
Topp