【问题标题】:Some files not analyzed by Sonar "Invalid character encountered in file"Sonar“文件中遇到无效字符”未分析某些文件
【发布时间】:2016-02-13 19:16:56
【问题描述】:

我有几个未分析的文件并显示以下消息:

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

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

我将其更改为 Unicode(带签名的 UTF-8)-代码页 65001。

但 SonarQube 仍然抱怨无效字符。 “无效字符”是德语中带有变音符号 (ä,ö,ü) 的 cmets

我能做些什么来解决这个问题(不移除 cmets)?

【问题讨论】:

  • 升级到 SonarQube 5.6.6 后我也遇到了同样的问题 - 德语变音符号也有同样的问题。 sonar.sourceEncoding = UTF-8 已设置 - 十六进制编辑器中的 ue-umlaut 是 CEBC,所以一切都应该没问题 - 你是如何解决问题的?
  • 我使用了来自以下 [link] (stackoverflow.com/questions/5596982/…) 的脚本。这适用于 C#。如果您也有 C++ 源代码,则可能需要使用 BOM 转换为 UTF-8。为此,我使用了 Powershell 脚本 UTF8-EncodeFilesWithBOM $basePath = "C:\Main\System" foreach($line in Get-Content "C:\Temp\utf\utfErrors2.txt") { $file = Join-Path -Path $basePath -ChildPath $line (Get-Content $file -Encoding UTF8) | Set-Content -Encoding UTF8 $file }

标签: c# utf-8 sonarqube code-analysis


【解决方案1】:

用于 MSBuild 的 SonarQube 扫描仪和 SonarQube C# 插件目前期望项目的所有文件都具有 UTF-8 编码 - 这是硬编码的。

在未来的版本中有一张票可以改进这一点:https://jira.sonarsource.com/browse/SONARMSBRU-174

【讨论】:

  • 怎么改编码为UTF-8还是不行?
  • 我怀疑文件的编码没有正确更改。您可以在十六进制编辑器中查看该文件的第 9 行,看看它是否正确。
【解决方案2】:

在分析 XML 文件时,我遇到了同样的错误 Invalid Character encountered in file。我的属性文件中已经有sonar.sourceEncoding=UTF-8

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2016-04-26
    • 1970-01-01
    • 2016-12-01
    • 2019-10-23
    • 1970-01-01
    • 2019-12-20
    相关资源
    最近更新 更多