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.