<?php
function hej($b) {
utfb = utf8_encode('$b');
utfa = utf8_encode(($_GET['a']));
if ($utfa == $utfb) echo 'Hej';
?>
<?php hej("Gräs"); ?>
Ska alltså ge utskriften Gräs.
Detta fungerar inte. antagligen eftersom a och b ger olika utf-värden. Den som kommer från adressraden på webbläsaren får inte samma värde som den man skapar i koden. Om man testar att skriva gräs i webbläsaren omvandlas det till gr%C3%A4s.
Var det pseudokod du postade eller har du glömt $ för variablerna utfa och utfb? Saknade även en avslutande } för funktionen...
Använder webbläsaren UTF-8? Skriv ut $utfa och $utfb så ser du ju om värdena skiljer sig. Konvertera sedan till ISO för att se vad den får för bokstäver.
Jag måste vara ärlig och säga att jag har inte sysslat med å,ä,ö på detta sätt. Men har det inte med hur klienten skickar datan till servern? Påverkar det om du anger UTF-8 i en meta-tag i HTML-koden?