mi spiego in php:

codice:
$lingue = array('IT', 'EN');

if(isset($_COOKIE['lang']) && in_array($_COOKIE['lang'], $lingue)) {
  $lingua_da_visualizzare = $_COOKIE['lang'];
} elseif (isset($_GET['lang']) && in_array($_GET['lang'], $lingue)){
  $lingua_da_visualizzare = $_GET['lingua'];
} else {
  $lingua_da_visualizzare = 'IT';
}

// non so se la sintassi di set cookie è corretta, l'ho scritta al volo
set_cookie('lang',$lingua_da_visualizzare, 86400);
nel sito usera $lingua_da_visualizzare ogni qual volta che vorrai sapere che lingua mostrare.

Per l'utf8 il discorso è articolato e complesso, la risposta che ti do qui alla tua domanda è semplicemetne "NO", però se leggerai le risorse sul forum avrai un buon quadro.

ciao