Hier het beloofde python script.
Het converteert bestanden met de extensie .srt die utf-8 zijn naar bestanden die utf-8 sig zijn.
Als het goed is zal de PCH deze correct weergeven.
Het script gaat ervan uit dat je python van de SynoCommunity gebruikt.
Het heeft de python module chardet nodig.
Als die er niet blijkt te zijn (script geeft dat aan) dan installeer je dat met "pip install chardet"
Als je dit bestand opslaat als converteer,py dan kun je het starten met "./converteer.py"
#!/volume1/@appstore/python/bin/python
import os,io
try:
import chardet
except:
print 'No chardet module found in Python library'
print 'Instal chardet with the command : pip install chardet'
quit()
################################################################################
# This programm convert utf-8 files with extension .srt to utf-8-sig
# 'path' is the location of the subtitle files
#################################################################################
path = '/volume1/Media/SERIES'
path = 'D:\\\\sync\\Test'
Sub_ext = '.srt'
Bck_ext = '.old'
try:
os.path.isdir(path)
except Exception as error:
print error
quit()
# Here starts the folder scanning
print 'The following files are converted:'
print ''
for dirname, dirnames, filenames in os.walk(path):
for filename in filenames:
root,ext = os.path.splitext(filename)
if ext.lower() == Sub_ext:
with open(dirname + os.sep + filename, 'rb') as fp_in:
rawdata = fp_in.read()
SubCodec = chardet.detect(rawdata)['encoding']
if SubCodec == 'utf-8':
UnicodeData = rawdata.decode('utf-8', errors='replace')
try:
os.rename(dirname + os.sep + filename, dirname + os.sep + root + Bck_ext)
except Exception as error:
print error
try:
with io.open(dirname + os.sep + filename, mode='w',encoding='utf-8',newline='') as fp_out:
fp_out.write(u'\uFEFF')
fp_out.write(UnicodeData)
except Exception as error:
print error
print filename