یکی از خوبیای گنو/لینوکس اینه که هر کاری بخوای میتونی توش انجام بدی و برای انجامش حتما چندین راه وجود داره.
چند روز پیش میخواستم یه فیلم نگاه کنم و رفتم زیرنویسشو دانلود کردم که چشتون روز بد نبینه، دیدم فایلش خرچنگقورباغهس. رفتم یکی دیگه دانلود کردم و دیدم بازم همون مشکل. پس دست به کار شدم و یه سرچ تو گوگل کردم و با دستور iconv آشنا شدم. و با یه خط دستور به راحتی فایل زیرنویسو درستش کردم. خیلی خوب بود.
بنابراین تصمیم گرفتم این دستورو یه جوری درستش کنم که دوستامم بتونن ازش استفاده کنن. این شد که دست به دامن پایتون شدم و اسکریپت زیرو نوشتم:
import sys, os inputFile = sys.argv[1] outputFile = sys.argv[2] if os.path.isfile(inputFile): f = open(inputFile, 'rb') content = unicode(f.read(), 'windows-1256') f.close() f = open(outputFile, 'wb') f.write(content.encode('utf-8')) f.close() print "your file encodeing has been changed :)))" else: print "your input file is not exists!!!!! :("
طرز کار:
ابتدا یه فایل خالی تو هر کجای کامپیوتر که دلتون خواست ایجاد کنید و اسمشو هرچی میخواین بذارین ولی با پسوند .py ذخیرهش کنین.( من ترجیح میدم تو دسکتاپم باشه و اسمشو گذاشتم subFix.py)
بعد توی ترمینال با دستور زیر برنامه رو اجرا کنید:
python subFix.py input_subtitle_file.srt output_subtitle_file.srt
اگه سوالی داشتین در خدمتم. ضمنا انجام همین عملیات با دستور iconv به شکل زیره:
iconv -f WINDOWS-1256 -t UTF-8 input_file.srt -o output_file.srt