zoukankan      html  css  js  c++  java
  • python 转化文件编码 utf8

    使用visual studio最大的一个问题就是文件编码问题,当文件中有中文时,visual studio 会默认为区域编码,也就是gb2312,如果想跨平台或者不用vs编译的话,就会因为编码问题导致各种错误。

    所以写了个python脚本来检测原文件编码并转换为目标编码,以下代码以目标编码为utf-8为例:

    需要安装chardet,详情:https://pypi.python.org/pypi/chardet 

    使用方法: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()
  • 相关阅读:
    搭建JavaWeb服务器
    Python网络爬虫相关基础概念
    Python网络爬虫 《http和https协议》
    jupyter环境安装
    js 解密,混淆,逆向
    selenium
    2、JNI说明
    1、Java快速入门
    4、基于JZ2440之编写测试代码处理(处理图片识别人脸)
    3、在编译过程中出现no space left on device
  • 原文地址:https://www.cnblogs.com/lebronjames/p/5210678.html
Copyright © 2011-2022 走看看