將所有的字幕檔案統一為utf 8格式

2021-08-19 18:05:02 字數 1359 閱讀 3741

一開始是用的他人的**,但是總會有異常,後來查詢編碼的知識,一點點的改,自己寫了乙個**,倒是沒報錯轉換成功了

import codecs

import shutil

import re

import os

import chardet

def convert_encoding(filename):

# backup the origin file.

# convert file from the source encoding to target encoding

content2b = codecs.open(filename, 'rb').read()

source_encoding = chardet.detect(content2b)['encoding']

if source_encoding != none:

content = content2b.decode(encoding = source_encoding, errors = 'ignore')

if source_encoding != 'utf-8':

print(source_encoding, filename)

codecs.open(filename, 'w', encoding='utf-8').write(content)

for root, dirs, files in os.walk('f:/zip/zip/'):

for file in files:

filename = os.path.join(root, file)

convert_encoding(filename)

1.    

content2b = codecs.open(filename, 'rb').read()
content2b獲得字幕檔案的二進位制值

2.

content = content2b.decode(encoding = source_encoding, errors = 'ignore')
content是將contend2b解碼文字元形式,解碼格式就是原來字幕檔案的編碼格式,之所以這麼麻煩是因為我發現如果直接用codecs.open()讀檔案,會出現解碼報錯,而我在程式中解碼,就可以用errors = 'ignore'屬性來避免,雖然不知道原理,但是能實用就好了,也不打算深究。後面我們在用'utf-8'編碼,就需要這個content變數了

3.

codecs.open(filename, 'w', encoding='utf-8').write(content)
用'utf-8'格式重新編碼寫入檔案

IDEA正確設定編碼統一為UTF 8

剛用上idea,之前 在eclispe跑得好好的來這個intellij idea 就一直出錯 改了好久的編碼都沒卵用,如下設定才正確。還有idea的web工程目錄和eclispe的目錄是不一樣的。而且mac和win下的idea設定的東西放的不一樣。file settings file encodin...

mysql將編碼格式永久設定為utf8的方法

mysql的預設 編碼是拉丁,如果給 資料庫中插入漢字都會顯示成問號。安裝mysql後,啟動服務並登陸,使用如下命令檢視 mysql資料庫 的預設編碼 由上圖可見database和server的字符集使用了latin1編碼方式,不支援中文,即儲存中文時會出現亂碼。以下修改方法 linux 系統 1 ...

Ubuntu下將GBK檔案轉換為UTF8檔案

在windows下編輯的 拿到linux下不能用,原因時windows下都是gbk編碼,而linux下中文會出現亂碼情況。勉強寫了乙個指令碼,但只能改變當前目錄下的檔案,還不能巢狀改變下層資料夾裡面的檔案。還有如果已經有存在utf 8編碼的檔案,裡面又恰好有中文,會出現錯誤的。先記著,以後再改進吧 ...