python转化文件编码utf8
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python转化⽂件编码utf8
使⽤visual studio最⼤的⼀个问题就是⽂件编码问题,当⽂件中有中⽂时,visual studio 会默认为区域编码,也就是gb2312,如果想跨平台或者不⽤vs编译的话,就会因为编码问题导致各种错误。
所以写了个python脚本来检测原⽂件编码并转换为⽬标编码,以下代码以⽬标编码为utf-8为例:
使⽤⽅法:python to_utf8.py /my_project/src
import codecs
import os
import sys
import shutil
import re
import chardet
convertdir = sys.argv[1]
convertfiletypes = [
".cpp",
".h",
".hpp"
]
def convert_encoding(filename, target_encoding):
# Backup the origin file.
# convert file from the source encoding to target encoding
content = codecs.open(filename, 'r').read()
source_encoding = chardet.detect(content)['encoding']
if source_encoding != 'utf-8':
print source_encoding, filename
content = content.decode(source_encoding, 'ignore') #.encode(source_encoding)
codecs.open(filename, 'w', encoding=target_encoding).write(content)
def main():
for root, dirs, files in os.walk(convertdir):
for f in files:
for filetype in convertfiletypes:
if f.lower().endswith(filetype):
filename = os.path.join(root, f)
try:
convert_encoding(filename, 'utf-8')
except Exception, e:
print filename
if__name__ == '__main__':
main()。