檔案字元編碼轉換
阿新 • • 發佈:2020-11-23
公司同事邀我一起給SQLSERVER 2008導數, 資料來源有高斯和ORACLE, 資料檔案儲存格式有UTF-8和GBK。
當我在做測試匯入的時候發現SQLSERVER 2008資料庫的WITH選項不支援CODEPAGE='65001', 即UTF-8檔案編碼格式匯入。 所以需要把UTF-8編碼的檔案
統一轉換成GBK, 程式碼如下。
#!/usr/bin/python3 # -*- coding: utf-8 -*- # python fileConv source_file dest_file import os, sys import chardet source_file = sys.argv[1] # 原始檔 dest_file = sys.argv[2] # 轉後的目標檔案 # 確定原始檔字元編碼 for row in open(source_file, 'rb'): tmp = chardet.detect(row) language = tmp.get("language") if language == 'Chinese': charset = "GB18030" else: charset = "UTF-8" break # 將檔案轉換成GBK編碼 with open(dest_file, 'w', encoding="GB18030") as fp: for row in open(source_file,'r', encoding=charset): fp.write(row)
在轉換生產資料的時候還算好用, 但有些字元還是無法很好的識別, 導致轉換失敗。
由於測試環境無法模擬真實檔案, 所以暫時到這裡。