[nacos]JAR启动并加载/解析Nacos yml格式的配置文件时,报“java.nio.charset.MalformedInputException: Input length = 1 ”
Posted 千千寰宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[nacos]JAR启动并加载/解析Nacos yml格式的配置文件时,报“java.nio.charset.MalformedInputException: Input length = 1 ”相关的知识,希望对你有一定的参考价值。
1 问题描述
- 原因1:字符集不匹配
nacos中配置文件的字符集为A,应用程序的读取配置文件时使用了字符集B,导致使用字符集B解码文件二进制流时字符解码失败。
一般问题出在中文注释上
- 原因2:(yml文件)配置格式有误
2 解决思路
2.1 原因1:字符集不匹配时
方法[1] 删除nacos配置文件中的一切中文字符
短频快(临时性解决)
方法[2] 正规解决思路
- 打JAR包时,在
pom.xml
指定JAR包内的字符集
pom.xml
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.outputEncoding>UTF-8</project.build.outputEncoding>
- jar包启动时,全局指定文件编码类型
以解决:设置
springboot/tomca
加载nacos
配置中心的配置文件时报java.nio.charset.MalformedInputException: Input length = 1
的问题
java -Dfile.encoding=utf-8 -jar app.jar
java -javaagent:./skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=application-local-test -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.trace.ignore_path=GET:/actuator/health,Lettuce/**,/eureka/**,HttpAsyncClient/local,Mysql/**,Druid/** -Dfile.encoding=utf-8 -jar app.jar
方法3 (通过
IDEA
默认方式在本地启动程序时)
Settings
-Editor
-File Encodings
-*
3 延伸相关问题
Q1:Windows中启动JAR包程序的控制台窗口中文乱码显示
- 问题描述
JAR
启动命令中指定了字符集编码: -Dfile.encoding=utf-8
- 解决思路
[方法1] 从控制台窗口入手:设置控制台窗口的字符集为
UTF-8
chcp 65001
java -javaagent:./skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=application-local-test -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.trace.ignore_path=GET:/actuator/health,Lettuce/**,/eureka/**,HttpAsyncClient/local,Mysql/**,Druid/** -Dfile.encoding=utf-8 -jar app.jar
X 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
springcloud 项目jar运行Nacos出错
参考技术A 1、首先,springcloud项目在idea中正常运行,但将项目打包成jar后无法启动。项目的注册中心与配置中心用的是Nacos。项目在启动时,会去Nacos注册中心拉取配置、并注册服务。在从Nacos中拉取解析配置时,发生错误。2、通过多番查证,才知道这是因为配置文件中有中文注释,但是启动时没有指定文件的编码方式,导致识别中文错误。
3、最后启动时指定文件编码方式,成功启动项目
以上是关于[nacos]JAR启动并加载/解析Nacos yml格式的配置文件时,报“java.nio.charset.MalformedInputException: Input length = 1 ”的主要内容,如果未能解决你的问题,请参考以下文章