1. 程式人生 > 實用技巧 >檔案字元編碼轉換

檔案字元編碼轉換

  公司同事邀我一起給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)

  

  在轉換生產資料的時候還算好用, 但有些字元還是無法很好的識別, 導致轉換失敗。

  由於測試環境無法模擬真實檔案, 所以暫時到這裡。