C# Sonar未分析的某些文件“文件中遇到无效字符”

C# Sonar未分析的某些文件“文件中遇到无效字符”,c#,utf-8,sonarqube,code-analysis,C#,Utf 8,Sonarqube,Code Analysis,我有几个文件没有使用以下消息进行分析: 位于的文件[具有完整路径的文件名]中遇到无效字符 第9行用于编码UTF-8。请修复文件内容或配置 使用属性“sonar.sourceEncoding”使用的编码 在Visual Studio中,当我选择文件/高级保存选项时,文件被设置为西欧Windows-代码页1252 我将其更改为Unicode UTF-8,带有签名-代码页65001 但是SonarQube仍然抱怨无效字符。无效字符是德语注释,带有Umlaut字符ä,ö,ü 如何在不删除注释的情况下修复

我有几个文件没有使用以下消息进行分析:

位于的文件[具有完整路径的文件名]中遇到无效字符 第9行用于编码UTF-8。请修复文件内容或配置 使用属性“sonar.sourceEncoding”使用的编码

在Visual Studio中,当我选择文件/高级保存选项时,文件被设置为西欧Windows-代码页1252

我将其更改为Unicode UTF-8,带有签名-代码页65001

但是SonarQube仍然抱怨无效字符。无效字符是德语注释,带有Umlaut字符ä,ö,ü


如何在不删除注释的情况下修复此问题?

SonarQube扫描程序的MSBuild和SonarQube C插件当前希望项目的所有文件都使用UTF-8编码,这是硬编码的

在未来的版本中,有一个改进方法:

我在分析XML文件时遇到了与文件中相同的错误无效字符。我的属性文件中已经有sonar.sourceEncoding=UTF-8


问题是我没有在Sonar中安装XML插件。一旦我通过更新中心安装了它,这个问题就解决了。希望这对其他面临此问题的人有所帮助。

为什么将编码更改为UTF-8后仍然无法工作?我怀疑文件的编码没有正确更改。您可以在十六进制编辑器中查看该文件的第9行,看看它是否正确。升级到SonarQube 5.6.6后,我也遇到了同样的问题-德语umlauts也有同样的问题。sonar.sourceEncoding=UTF-8已设置-ue umlaut在十六进制编辑器中为CEBC,因此一切都应该正常-您是如何解决问题的?我使用了以下[链接]中的脚本。这与C.很好,如果你还有C++源,你可能需要用BOM转换成UTF-8。为此,我在Get Content C:\Temp\utf\utferors2.txt{$file=Join Path-Path$basePath-ChildPath$line Get Content$file-Encoding UTF8 | Set Content-Encoding UTF8$file}中使用了一个Powershell脚本UTF8 EncodeFilesWithBOM$basePath=C:\Main\System foreach$line