2008-11-27 24 views
0

我已經現有的ASP.NET 2.0網站,存儲在團隊基礎服務器2005某些頁面/控件被編碼爲ANSI(根據記事本++)和Content-Type頭被設置爲:如果我將ANSI編碼文件轉換爲UTF-8,會出現什麼問題?

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> 

我想改變所有頁面爲UTF-8,因此,Content-Type頭到:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

除了改變meta元素,我想我還需要更改所有文件的編碼。我可以在Notepad ++中做到這一點,但如果任何人有更快的方法,請提及它們。

在TFS中合併/比較時,我可能會遇到什麼樣的問題?

+0

如果實際存在問題,爲什麼不試試並回來? – hop 2008-11-27 13:45:14

+0

因爲如果出現問題,我的整個團隊都會受到影響,截止日期可能會縮短。我寧願事先找出。 – tjrobinson 2008-12-01 14:16:39

回答

2

這取決於您的代碼庫中的文本中有多少文本使用0..127的ASCII範圍之外的字符。

您可能想先掃描那些,看看它會產生多大的影響。如果你的代碼庫主要是英文的,那麼你可能沒有太多的擔心。

2

我會寫一個Python腳本

for fn in os.listdir(srcdir): 
    data = open(srcdir+"\\"+fn, "rb").read().decode("windows-1252") 
    data = data.replace("charset=windows-1252", "charset=utf-8") 
    open(srcdir+"\\"+fn, "wb").write(data.encode("utf-8")) 

字符集的更新假定這個特定的字符串不會發生 其他地方;你可以把它更強大的通過檢查一個更長的字符串, 檢查舊文本是否實際的文件中存在,做適當的 XML解析等

你可能需要把UTF-8簽名前面數據; UTF-8編碼的 數據;你可以在編解碼器中找到一個.BOM_UTF8

我不知道這個改變對TFS有什麼影響。

0

我剛剛發現的一些有用的東西是,您可以右鍵單擊源代碼管理資源管理器上的文件,然後選擇「屬性」。就TFS而言,您可以查看/修改編碼。

0

選取一個文件,該文件的字符大於0-127 ASCII範圍。打開記事本,選擇另存爲並選擇UTF-8編碼。然後看看角色是否成功轉換。

要使過程自動化,您可以編寫一個應用程序,將所有文件從ASCII轉換爲UTF-8,並使用1252作爲代碼頁。如果你沒有127以上的字符,你不需要擔心所有這些。

0

這不一定是真的。我不瞭解ASP.net,但我們在Ansi完成了我們所有的PHP編碼,並以UTF8格式提供頁面。我們所有的數據庫信息都以UTF8格式保存。

相關問題