首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Visual Studio项目中的所有文件保存为UTF-8

将Visual Studio项目中的所有文件保存为UTF-8
EN

Stack Overflow用户
提问于 2008-11-11 00:31:57
回答 11查看 92.4K关注 0票数 90

我想知道是否可以将Visual Studio2008项目中的所有文件保存为特定的字符编码。我得到了一个混合编码的解决方案,我想让它们都一样(带签名的UTF-8)。

我知道如何保存单个文件,但是如何保存项目中的所有文件呢?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-05-12 01:26:04

既然你已经在Visual Studio中了,为什么不直接写代码呢?

代码语言:javascript
运行
复制
foreach (var f in new DirectoryInfo(@"...").GetFiles("*.cs", SearchOption.AllDirectories)) {
  string s = File.ReadAllText(f.FullName);
  File.WriteAllText (f.FullName, s, Encoding.UTF8);
}

只有三行代码!我相信您可以在不到一分钟的时间内写出以下内容:-)

票数 77
EN

Stack Overflow用户

发布于 2009-08-25 05:07:27

如果你需要在PowerShell中做到这一点,下面是我的一小步:

代码语言:javascript
运行
复制
Function Write-Utf8([string] $path, [string] $filter='*.*')
{
    [IO.SearchOption] $option = [IO.SearchOption]::AllDirectories;
    [String[]] $files = [IO.Directory]::GetFiles((Get-Item $path).FullName, $filter, $option);
    foreach($file in $files)
    {
        "Writing $file...";
        [String]$s = [IO.File]::ReadAllText($file);
        [IO.File]::WriteAllText($file, $s, [Text.Encoding]::UTF8);
    }
}
票数 12
EN

Stack Overflow用户

发布于 2008-11-11 08:24:03

我会以编程方式(在VS之外)转换文件,例如使用Python脚本:

代码语言:javascript
运行
复制
import glob, codecs

for f in glob.glob("*.py"):
    data = open("f", "rb").read()
    if data.startswith(codecs.BOM_UTF8):
        # Already UTF-8
        continue
    # else assume ANSI code page
    data = data.decode("mbcs")
    data = codecs.BOM_UTF8 + data.encode("utf-8")
    open("f", "wb").write(data)

这假设所有不在“带签名的UTF-8”中的文件都在ANSI代码页中-这与VS2008显然也假设的相同。如果您知道某些文件具有不同的编码,则必须指定这些编码是什么。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/279673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档