“Csharp编辑器”和“带编码的Csharp编辑器”有什么区别?

时间:2012-01-23 18:09:13

标签: visual-studio visual-studio-2010

Open with文件的.cs菜单中Csharp editorCsharp editor with encoding。我用两者开了一个解决方案,并没有看到差异。

它们之间的区别是什么?

2 个答案:

答案 0 :(得分:6)

除非你的.cs文件包含正常ASCII范围之外的字符,否则你不会看到文件实际内容的差异。区别在于编辑器是否尝试检测您再次打开文件时保存文件的字符编码,或者是否具体要求您。

默认情况下,当您保存新的.cs文件时,VS使用当前的ANSI代码页对字符进行编码。 (您可以将其切换为默认情况下使用UTF-8和相应的选项。)但是,您可以选择"使用编码保存...",这将提示您输入特定的字符编码想保存它。

在内部,您的代码将作为UTF-16处理,因为Windows处理的是原生字符串格式。但是,在磁盘上,UTF-16最有可能炸毁你的源文件,使其大小加倍,因为你编写的大多数C#代码可能都适合单个字节。因此,在写入磁盘时,VS会在特定的代码页中写出您的数据,该代码页定义了如何将UTF-16字符转换为其他可能的8位字符集。

当您在VS中重新加载文件时,它会尝试找出该文件所在的编码,如果它不能,它将回退到当前的ANSI代码页。 (您可以通过某些选项强制它回退到UTF-8,但它不会再回到不同的编码。)

当您重新加载文件时#34;使用Encoding",您会收到与保存文件时相同的提示,询问您使用了哪种编码。这样,如果Studio弄错了,你可以修复它。

除非您进行大量国际化编程,否则您的.cs文件中使用非默认语言嵌入外语字符串,您可能不需要使用显式"编码"保存或加载。但是,如果你需要它们,它们就在那里。

答案 1 :(得分:0)

如果您使用编码打开,则可以使用适合您的文化或区域的任何字符编码进行保存。