使用visual studio最大的一個問題就是文件編碼問題,當文件中有中文時,visual studio 會默認爲區域編碼,也就是gb2312,若是想跨平臺或者不用vs編譯的話,就會由於編碼問題致使各類錯誤。python
因此寫了個python腳原本檢測原文件編碼並轉換爲目標編碼,如下代碼以目標編碼爲utf-8爲例:編碼
須要安裝chardet,詳情:https://pypi.python.org/pypi/chardet spa
使用方法:python to_utf8.py /my_project/srccode
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()