如果我将ANSI编码文件转换为UTF-8会出现什么问题?

时间:2008-11-27 13:17:01

标签: asp.net tfs utf-8 ansi

我有一个存在于Team Foundation Server 2005中的现有ASP.NET 2.0网站。某些页面/控件编码为ANSI(根据Notepad ++),Content-Type标头设置为:

<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"/>

除了更改元素之外,我假设我还需要更改所有文件的编码。我可以在Notepad ++中执行此操作,但如果有人有任何更快的方法,请提及它们。

在TFS中合并/比较时,我可能面临哪些问题?

5 个答案:

答案 0 :(得分:2)

这取决于您的代码库中有多少文本使用的ASCII字符范围为0..127之外的字符。

您可能希望首先扫描这些内容,看看它会产生多大的影响。如果您的代码库主要使用英语,那么您可能不必担心。

答案 1 :(得分: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"))

charset的更新假定不会发生此特定字符串 别处;通过检查更长的字符串,你可以使它更健壮 检查旧文本是否实际存在于文件中,做得正确 XML解析等

您可能需要在UTF-8编码的前面放置UTF-8签名 数据;你在codecs.BOM_UTF8

中找到一个

我不知道这种变化对TFS有什么影响。

答案 2 :(得分:0)

我刚刚发现的有用的东西是你可以右键单击Source Control Explorer上的文件,然后选择Properties。然后,就TFS而言,您可以查看/修改编码。

答案 3 :(得分:0)

选择一个字符高于0-127 ASCII范围的文件。使用记事本打开它,选择“另存为”并选择UTF-8进行编码。然后查看角色是否成功转换。

要自动执行此过程,您可以编写一个应用程序,将所有文件从ASCII转换为UTF-8,使用1252作为代码页。如果你没有超过127的字符,你不必担心所有这些。

答案 4 :(得分:0)

这不一定是真的。我不知道ASP.net,但我们在Ansi中完成所有PHP编码,并以UTF8为单位提供服务。我们所有的数据库信息也都存储在UTF8中。