تبدیل charachter encoding فایل های متنی

امین 13 سپتامبر 2023 زمان خواندن: ~1 دقیقه

مشکل از اینجا شروع میشه که اکثر فایل های زیرنویس فارسی دارای encoding از نوع windows-1256 هستند. این باعث میشه که در نرم افزار های پخش فیلم مثل totem یا vlc زیرنویس فارسی درست نشون داده نشه. (البته این مال قدیم بود و الان دیگه همچین مشکلی نداریم. صرفا برای آرشیو این مطلب و استفاده های مشابه نوشتم)

با این روش من encoding فایل زیرنویس رو به utf8 تغییر میدم  و در تنظیمات vlc هم utf8 رو انتخاب میکنم. totem هم خودش متوجه خواهد شد. و زیرنویس فارسی درست نشون داده خواهد شد. برای این تغییر:

iconv -f windows-1256 -t utf8 /file-1.srt > /file-2.srt

طبیعتا آدرس فایل ها رو باید جایگزین کنید.

یک راه ساده تر برای این تبدیل، استفاده از یک اسکریپت ساده است. من این اسکریپت رو طبق نیاز خودم تغییر دادم. میتونید اون رو در یک فایل مثلا با نام srtconv ذخیره کنید و اون رو در فولدر usr/bin/  کپی کنید. و از این به بعد برای تبدیل یک زیرنویس به utf8 در خط فرمان تایپ کنید srtconv و بعد از اینتر کردن، آدرس فایلتون رو بهش میدید. اونوقت فایل شما از windows-1256 به utf8 تبدیل میشه و کنار فایل اصلی قرار میگیره.

برای دیدن اسکریپت به ادامه مطلب برید!

#!/bin/bash
echo -n "This converts a file with windows-1256 encoding to UTF8. Enter File path:"
read fileName
if [ ! -f $fileName ]; then
echo "Filename $fileName does not exists"
exit 1
fi
iconv -f windows-1256 -t utf8 < $fileName > $fileName-NEW

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس