Запарило пересохранять субтитры, которые часто выкладывают в вин-кодировке. Нашел клевый скрипт на питоне (а значит и под виндой можно юзать) для конвертации из любой кодировки (исходная автоопределяется) в UTF8. Навесил его как кастомную команду для *.srt в Double Commander, который также юзаю в обеих системах — стало совсем хорошо =)
- #!/usr/bin/env python3
- import os
- import sys
- from chardet import detect
- srcfile = sys.argv[1]
- tmpfile = sys.argv[1] + '.tmp'
- bakfile = sys.argv[1] + '.bak'
- # get file encoding type
- def get_encoding_type(file):
- with open(file, 'rb') as f:
- rawdata = f.read()
- return detect(rawdata)['encoding']
- from_codec = get_encoding_type(srcfile)
- # add try: except block for reliability
- try:
- with open(srcfile, 'r', encoding=from_codec) as f, open(tmpfile, 'w', encoding='utf-8') as e:
- text = f.read() # for small files, for big use chunks
- e.write(text)
- os.rename(srcfile, bakfile) # backup old encoding file
- os.rename(tmpfile, srcfile) # rename new encoding
- except UnicodeDecodeError:
- print('Decode Error')
- except UnicodeEncodeError:
- print('Encode Error')