Geçenlerde altyazıları yüklerken aklıma takıldı. Bazı altyazılar UTF-8, bazıları ise ISO-8859-9. Bu yüzden yazdığım kodlar birini düzgün gösterirken diğerini göstermiyordu. Bu yüzden dosyanın hangi karakter kodlamasına ait olduğunu öğrenmem gerekiyordu. Ve şöyle bir kod yazdım;
$open = file_get_contents('test.srt'); $enc = mb_detect_encoding($open, mb_list_encodings(), true); echo $enc; // örnek çıktı: UTF-8 ya da ISO-8859-9
Peki bunu bulmak benim ne işime yaradı? Bu sayede header ile karakter setini belirleyebildim şu şekilde;
if ($enc == "UTF-8") { header('Content-type: text/vtt; charset=utf8'); } else { header('Content-type: text/vtt; charset=iso-8859-9'); }
Buda karakter problemlerimi çözmüş oldu. Bir gün böyle bir hata ile karşılaşırsanız artık çözümünü biliyorsunuz, kolay gelsin.