I had a problem with multibytes. File was windows-1250, script was UTF-8 and set_locale wasn't work so I made a simple and safe workaround:
<?php
$fc = iconv('windows-1250', 'utf-8', file_get_contents($_FILES['csv']['tmp_name']));
file_put_contents('tmp/import.tmp', $fc);
$handle = fopen('tmp/import.tmp', "r");
$rows = array();
while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
$rows[] = $data;
}
fclose($handle);
unlink('tmp/import.tmp');
?>
I hope You will find it out usefull.
Sorry for my english.