C# VisualStudio没有';我不喜欢一个特别的拉丁字母-ç;

C# VisualStudio没有';我不喜欢一个特别的拉丁字母-ç;,c#,visual-studio,latin,C#,Visual Studio,Latin,这是一个奇怪的问题,不像我遇到过的任何事情,所以希望其他人也看到过类似的事情,并能为我指明正确的方向 在我的文本编辑器(升华3)中,我打开了有问题的文件,我在Visual Studio中遇到问题的代码如下所示: m_TargetApplicationFaçade = new TargetApplicationFaçade m_TargetApplicationFa鏰de = new TargetApplicationFa鏰de 这就是我期望它的外观,但是,当我打开.sln项目文件时(如果我的

这是一个奇怪的问题,不像我遇到过的任何事情,所以希望其他人也看到过类似的事情,并能为我指明正确的方向

在我的文本编辑器(升华3)中,我打开了有问题的文件,我在Visual Studio中遇到问题的代码如下所示:

m_TargetApplicationFaçade = new TargetApplicationFaçade
m_TargetApplicationFa鏰de = new TargetApplicationFa鏰de
这就是我期望它的外观,但是,当我打开.sln项目文件时(如果我的术语错误,很抱歉-对于Visual Studio来说是非常新的),同一行代码如下所示:

m_TargetApplicationFaçade = new TargetApplicationFaçade
m_TargetApplicationFa鏰de = new TargetApplicationFa鏰de
在尝试构建应用程序时,Visual Studio会在这些字符处出错-这是一个工作应用程序,我刚刚从Git repo克隆而来,因此我不需要进行任何更改-即,我不想替换字母“ç”,我想弄清楚为什么Visual Studio似乎不喜欢它。。。如果可能的话

如果有帮助的话,我正在用Mac电脑

希望所有这些都是有意义的,并且是足够的信息

欢迎有任何建议

问候,,
尼尔

谢谢你在评论中提到的坦纳·斯维特(Tanner Swett)找到了这个问题的答案

问题是该文件使用拉丁语1进行了错误编码-我将该文件的编码更改为UTF-8-我在Sublime 3中进行了此操作(快速的Google将为您提供如何进行此操作的答案),然后在Visual Studio中重新打开我的项目,错误消失了!:-)

再次感谢大家


N

谢谢你在评论中提到的Tanner Swett,因为他找到了这个问题的答案

问题是该文件使用拉丁语1进行了错误编码-我将该文件的编码更改为UTF-8-我在Sublime 3中进行了此操作(快速的Google将为您提供如何进行此操作的答案),然后在Visual Studio中重新打开我的项目,错误消失了!:-)

再次感谢大家


N

在Windows 7的VS 2013上运行良好。也许和Mac版本有关?VS是什么版本的?ç不是拉丁字母(尽管它取决于你对“拉丁”的定义),也不是ASCII。如果您想可靠地使用非ASCII字符,请确保所有字符都使用Unicode。否则,请确保您的所有工具都使用相同的编码-看起来您在Git中使用的单字节编码在Visual Studio中被解释为UTF-8(大多数情况下这是一个不错的假设-并且考虑到您提供的启发式信息是多么少,这是唯一合理的假设)。@Pikoh:“扩展ASCII”这是一个不必要的模糊术语,人们应该停止使用。ç不是ASCII格式;它也不在很多其他角色集中。有一些字符集将ASCII作为一个适当的子集,也有ç,但请不要将其称为“扩展ASCII”,因为它不会告诉您实际指的是哪个字符集(更不用说编码了)。(拉丁语-1?Windows-1252?HP罗马语?UTF-8?)字符集的实际存在也无关紧要,因为这是一个编辑误解编码的简单问题。您看到的是,如果文件使用拉丁-1编码,然后使用此编码进行解码,您会得到什么:我不知道如何让Visual Studio正确识别编码,但是如果您将文件转换为UTF-8,Visual Studio可能能够自动识别。将源文件转换为UTF8,并确保包含字节顺序标记(BOM)。VS会将它们识别为UTF8。在Windows7的VS2013上运行良好。也许和Mac版本有关?VS是什么版本的?ç不是拉丁字母(尽管它取决于你对“拉丁”的定义),也不是ASCII。如果您想可靠地使用非ASCII字符,请确保所有字符都使用Unicode。否则,请确保您的所有工具都使用相同的编码-看起来您在Git中使用的单字节编码在Visual Studio中被解释为UTF-8(大多数情况下这是一个不错的假设-并且考虑到您提供的启发式信息是多么少,这是唯一合理的假设)。@Pikoh:“扩展ASCII”这是一个不必要的模糊术语,人们应该停止使用。ç不是ASCII格式;它也不在很多其他角色集中。有一些字符集将ASCII作为一个适当的子集,也有ç,但请不要将其称为“扩展ASCII”,因为它不会告诉您实际指的是哪个字符集(更不用说编码了)。(拉丁语-1?Windows-1252?HP罗马语?UTF-8?)字符集的实际存在也无关紧要,因为这是一个编辑误解编码的简单问题。您看到的是,如果文件使用拉丁-1编码,然后使用此编码进行解码,您会得到什么:我不知道如何让Visual Studio正确识别编码,但是如果您将文件转换为UTF-8,Visual Studio可能能够自动识别。将源文件转换为UTF8,并确保包含字节顺序标记(BOM)。VS会将它们识别为UTF8。还请注意.NET应用程序的一个好标准是避免公共成员使用非ASCII字符。虽然.NET对Unicode字符有很好的支持,但它使事情变得比需要的更棘手(例如,大多数人不知道如何在键盘上键入
ç
,并且可能会与其他字符混淆)。仅仅因为你可以使用
Façade
作为标识符并不意味着你应该:)我也可以在我的所有标识符中混合使用类似拉丁语的拉丁语和西里尔语字符,但你肯定同意这是相当有敌意的:PCouldn不太同意Luaan-不确定为什么是谁做的,但是嘿嘿嘿!:-)还请注意.NET应用程序的一个好标准是避免公共成员使用非ASCII字符。虽然.NET对Unicode字符有很好的支持,但它使事情变得比需要的更棘手(例如,大多数人不知道如何在键盘上键入
ç
,并且可能会与其他字符混淆)。仅仅因为您可以使用
Façade
作为标识符并不意味着您可以