2013-05-21 45 views
4

您好我有一個使用windows 1252字符集的windows項目,我需要將所有.php文件轉換爲utf-8字符集,因爲我的數據庫全部是utf-8編碼。 有沒有辦法做到這一點使用Linux命令或軟件?將字符集從整個項目轉換爲utf-8

+0

這隻需要幾行Python來轉換單個文件。 –

回答

10

在項目的根目錄,使用find(1)列出所有*.php文件和結合起來,與recode(1)這些文件轉換到位:

find . -type f -name '*.php' -exec recode windows1252..utf8 \{} \; 

作爲替代重新編碼(1),你也可以使用iconv(1)進行轉換(與以上使用find命令:iconv -f windows-1252 -t utf-8 -o \{} \{})。

您需要安裝recode或iconv才能使上述功能正常工作。兩者都應該可以通過大多數現代系統的包管理器輕鬆安裝。

+0

以及我得到這個發現-type f -name'* .php'-exec recode windows1252..utf8 \ {} \; 找到:非法選項 - t 用法:find [-H | -L | -P] [-EXdsx] [-f路徑]路徑... [表達式] find [-H | -L | -P] [-EXDSX] -f路徑[路徑...] [表達式] –

+0

與點它確定,但它說找到:recode:沒有這樣的文件或目錄 –

+0

哦,我發現它,我需要安裝recode與釀造安裝,謝謝你保存我的日子 –

1

要轉換使用Python一個單一文件(因爲有人問我...)

import codecs 
with codecs.open(filename_in, 'r', 'windows-1252') as fin: 
    with codecs.open(filename_out, 'w', 'utf-8') as fout: 
     for line in fin: 
      fout.write(line) 

也可以編碼成UTF-8,直接轉換成字符串,而不將其寫入到文件:

utf8_line = line.encode('utf-8') 
+0

做得好,這可以幫助別人:) –