【问题标题】:Force Visual Studio (2010) to save all files in UTF-8强制 Visual Studio (2010) 以 UTF-8 保存所有文件
【发布时间】:2010-12-22 18:33:13
【问题描述】:

有什么方法可以强制 Visual Studio (2010) 始终以 UTF-8 格式保存所有文件?

【问题讨论】:

标签: visual-studio-2010


【解决方案1】:

我不知道如何强制它以 UTF-8 格式保存所有内容,但您可以根据具体情况进行操作。当您第一次保存文档并出现“另存为...”对话框时,“保存”按钮实际上是一个带有两个选项的下拉按钮。您想要“使用编码保存...”,然后它将显示已安装 Windows 编码的完整列表。

您真正想要的编码在底部:

Unicode(不带签名的 UTF-8)- 代码页 65001

虽然如果你想为自己省去很多痛苦,你可能会想要选择靠近顶部的选项:

Unicode(带签名的 UTF-8) - 代码页 65001

不同之处在于后一个选项粘贴 UTF-8 签名(它只是以 UTF-8 编码的 UTF-16 字节顺序标记)。这是我最讨厌的问题之一,因为 UTF-8 没有有多个字节顺序,所以 BOM 充其量是多余的,最坏的情况是破坏各种文本处理工具。 MS 使用它自动“检测” UTF-8,因为对于单字节字符,UTF-8、ISO-8859-1 和 CP-1252 是相同的,除了 MS 基本上的 32 个字符序列 (0x80 - 0x9f)编造的。

如果您只使用 Visual Studio 或 .NET 工具编辑或处理文件,那么使用签名保存可能会正常工作。如果您需要保存文件以供其他工具使用(批处理文件、SQL 查询、PHP 脚本等),签名会导致问题,您应该在没有它的情况下保存它们。如果这样做,您可能需要启用选项(在工具 -> 选项 -> 文本编辑器下)“自动检测不带签名的 UTF-8 编码”,或者,右键单击文件并选择“打开方式” ...”并选择“带编码的编辑器”的编辑器选项。

【讨论】:

  • 我认为 BOM 包含在内,以便文本编辑器可以轻松地确定当仅存在 ASCII 字符时文件是否应被视为 UTF-8。所以,严格来说,我不认为这是多余的。如果要谈论冗余,我认为 UTF-32 是要走的路。
  • 如果你需要判断一个文件是否可以被视为UTF-8,有一个非常简单的方法:try将文件解析为UTF-8。 UTF-8 的属性使得非 UTF-8 文件也不太可能是有效的 UTF-8(当然,ASCII 是 UTF-8 的子集)。
【解决方案2】:

我认为它将文件保存在当前代码页中。 Tools->Options->Environment->Documents 下有一个选项,当它无法保存在当前代码页中时,它可以保存在 unicode 中。但我不知道这是否有帮助......

【讨论】:

  • 不行,你必须找到所有以gbk保存的文件,然后手动告诉vs2010将它们保存为utf8。这东西让我很无聊..
【解决方案3】:

我想你想试试 ForceUtf8(with BOM)/ForceUtf8(without BOM) 扩展。

只需在 VS 扩展库中搜索 UTF8(工具 -> 扩展和更新)

【讨论】:

  • 当使用这种方法时,转换是自动的吗?还是可以选择手动转换每个文件?
  • 下次保存文件时会自动转换
猜你喜欢
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多