当前位置: 首页 > news >正文

2401Idea用GradleKotlin编译Java控制台中文出乱码解决

解决方法

解决方法1

在项目 build.gradle.kts 文件中加入

tasks.withType<JavaCompile> {options.encoding = "UTF-8"
}
tasks.withType<JavaExec> {systemProperty("file.encoding", "utf-8")
}

经测试, 只加

tasks.withType<JavaExec> {systemProperty("file.encoding", "utf-8")
}

就解决了

解决方法2

构建工具选"IntelliJ IDEA"后解决

在这里插入图片描述

过程

控制台中文出现乱码
在这里插入图片描述

��ѹVoltage=229.5
����Current=358
����Power=48.8
��������PowerFactor=0.59
Ƶ��Frequency=50
�¶�Temperature=20

此时的状态, java文件本身时UTF-8的,
这三处的文件编码都选了UTF8,但还是乱码
在这里插入图片描述

在这里插入图片描述

在项目 build.gradle.kts 文件中加入

tasks.withType<JavaCompile> {options.encoding = "UTF-8"
}

未能解决

在idea安装目录 idea64.exe.vmoptions文件中加入-Dfile.encoding=UTF-8 依旧无效 , 因为此时是用本地的gradle来编译,不是idea自身来编译
在这里插入图片描述

-Dkotlinx.coroutines.debug=off

添加后的的 idea64.exe.vmoptions

-Xms128m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+IgnoreUnrecognizedVMOptions
-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend
-ea
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off

仍然未解决 , 因为此时是用本地的gradle来编译,不是idea自身来编译

将构建工具选"IntelliJ IDEA"后解决

在这里插入图片描述
选择用idea编译后,解决了.但不甘心,为什么用gradle构建不行呢?

其实,此时无论idea和gradle编译出的class都是UTF-8的了, 那么问题在哪呢?

查看javaSystem的file.encoding属性
在程序中加入一句 System.out.println(System.getProperty("file.encoding"));

System.out.println(System.getProperty("file.encoding"));

发现结果时GBK!!! (构建工具选"IntelliJ IDEA"时是"UTF-8" , 选"Gradle时是"GBK" )

于是在项目 build.gradle.kts 文件中加入

tasks.withType<JavaExec> {systemProperty("file.encoding", "utf-8")
}

解决了

原因

由Gradle8.5启动的jvm环境会使用操作系统的字符集GBK,引起了乱码

http://www.lryc.cn/news/290990.html

相关文章:

  • Day39 62不同路径 63不同路径II 343整数拆分 96不同的二叉搜索树
  • JavaScript 的 ~~ 运算和floor 的性能差异
  • AtCoder Beginner Contest 338F - Negative Traveling Salesman【floyd+状态压缩dp】
  • UDP/TCP协议特点
  • 编程笔记 html5cssjs 059 css多列
  • Facebook的元宇宙探索:虚拟社交的新时代
  • 用React给XXL-JOB开发一个新皮肤(四):实现用户管理模块
  • 某赛通电子文档安全管理系统 hiddenWatermark/uploadFile 文件上传漏洞复现
  • Redis五种数据类型及应用场景
  • 测试环境搭建整套大数据系统(一:基础配置,修改hostname,hosts,免密)
  • maven helper 解决jar包冲突方法
  • AppSrv-文件共享(23国赛真题)
  • AsyncLocal是如何实现在Thread直接传值的?
  • Flask 入门1:一个简单的 Web 程序
  • 维护管理Harbor,docker容器的重启策略
  • Qt6入门教程 14:QToolButton
  • 3D数据转换器HOOPS Exchange如何获取模型的几何数据? 干货预警!
  • Coremail启动鸿蒙原生应用开发,打造全场景邮件办公新体验
  • 基于CVITEK_CV1821+SOI_Q03P的IPC方案
  • chromedriver安装和环境变量配置
  • Linux浅学笔记03
  • 【vue】图片加载骨架
  • leetcode59. 螺旋矩阵 II
  • bash 5.2中文修订5
  • 5GNR解调分析手持式频谱分析仪
  • 互联网加竞赛 基于深度学习的人脸表情识别
  • python-自动化篇-运维-监控-简单实例-道出如何使⽤Python进⾏网络监控?
  • SpringBoot 配置类解析
  • 全套军事和民用监听系统
  • MicroPython核心:编译器