首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins sonarscanner显示编码警告

Jenkins sonarscanner显示编码警告
EN

Stack Overflow用户
提问于 2021-02-12 17:16:41
回答 1查看 113关注 0票数 0

我刚刚部署了一个基于jenkins和sonarqube的CI系统。一旦Jenkins Sonnarscanner开始他的管道部分,我可以看到许多消息,如下所示:

代码语言:javascript
复制
WARN: Invalid character encountered in file /var/jenkins_home/workspace/Pipeline Test/code/..../CodigoSitioDAO.java at line 3 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.

我的sonarqube呼叫线是:

代码语言:javascript
复制
                                sh "${scannerHome}/bin/sonar-scanner \
                                -Dsonar.sourceEnconding=UTF-8 \
                                -Dsonar.projectKey=My_Project\
                                -Dsonar.sources=. \
                                -Dsonar.java.binaries=. \
                                -Dsonar.nodejs.executable=. \
                                -Dsonar.login=c9bb378b2380af844c7465424933b942d10f5d18 \
                                -Dsonar.host.url=http://sonarqube:9000"
                            }

所以,一旦我检查了前面提到的文件,我可以在第3行看到一些我认为与警告消息无关的东西:import java.sql.Connection;

在配置了-Dsonar.sourceEncoding=UTF-8之后,我不得不说我不知道发生了什么。

你们谁能帮帮我?

EN

回答 1

Stack Overflow用户

发布于 2021-02-15 20:44:35

在我看来,该文件不是UTF-8格式的。很有可能(特别是如果您使用的是Windows编辑器),文件以某种特定于平台的编码保存,并且其内容对于UTF-8没有意义。请考虑以下几点:

代码语言:javascript
复制
Clase de implementación del DAO de los códigos

相同的内容已保存为ANSI和UTF-8 (保存时明确选择)。现在如果你比较字节的内容,它们是不一样的:

代码语言:javascript
复制
$ hexdump -C test-ansi.txt
00000000  43 6c 61 73 65 20 64 65  20 69 6d 70 6c 65 6d 65  |Clase de impleme|
00000010  6e 74 61 63 69 f3 6e 20  64 65 6c 20 44 41 4f 20  |ntaci.n del DAO |
00000020  64 65 20 6c 6f 73 20 63  f3 64 69 67 6f 73        |de los c.digos|
0000002e

$ hexdump -C test-utf8.txt
00000000  43 6c 61 73 65 20 64 65  20 69 6d 70 6c 65 6d 65  |Clase de impleme|
00000010  6e 74 61 63 69 c3 b3 6e  20 64 65 6c 20 44 41 4f  |ntaci..n del DAO|
00000020  20 64 65 20 6c 6f 73 20  63 c3 b3 64 69 67 6f 73  | de los c..digos|
00000030

注意,相同的字符ó在美国国家标准中被编码为f3,在UTF-8中被编码为c3 b3。我相信这就是您的消息:声明的编码是UTF-8 (可能是默认的),但是字符内容f3在这种编码下是无效的。请使用十六进制编辑器仔细检查您的编码。

附注:如果您直接从文件中复制和粘贴行,请注意Stack Overflow也无法解码它,确认它不是UTF-8编码的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66169128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档