思有所皈,绪有所依

给万千思绪,寻一寄存之所

解决mvn编译输出乱码的问题

乱码及分析

最近的某个项目从jdk17升级到jdk21,mvn clean install的时候,某些输出为中文的地方变成了乱码。搜索出的资料大多数都是IDEA相关,解决办法要么是设置IDEA的File encoding,要么是在pom.xml里设置编码,都与我的这个问题不符。

从现象来看应该是jdk版本导致的,因为我运行mvn命令是在PowerShell下,不是IDEA。最先怀疑是不是jdk厂商的问题,不同厂商的实现有差异。后来都用Oracle提供的JDK进行测试,还是问题依旧,17中文不乱码,切换到21就乱码了。所以推测是JDK 21检测系统的local编码跟17不一样,尝试找了一下有没有设置JDK日志输出编码的参数,未果。

后来在这篇博文里找到了解决方案:关于使用gradle编译java导致中文乱码的分析以及解决(完美且分析了所有情况)

虽然该文是讲Gradle,但是这个问题的根本原因是在JDK上,仍然适合解决我遇到的问题。

解决方法

设置“使用Unicode UTF-8 提供全球语言支持”,操作路径为:控制面板-时钟和区域-区域(更改日期、时间或数字格式)-管理(更改系统区域设置)-勾选“Beta版:使用Unicode UTF-8 提供全球语言支持”,设置之后重启生效。

git tips

分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看分支
git branch

# 查看所有分支
git branch -a

# 拉取远程的最新数据
git fetch

# 切换分支
git checkout [分支名]

# 删除分支
git branch -d [分支名]

Golang环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看
go env

# 帮助
go help env
go env -h


# 变更的值
go env -changed

# 设置
go env -w GOOS=linux

# 恢复默认值
go env -u GOOS

长干行·其一

唐·李白

妾发初覆额,折花门前剧。
郎骑竹马来,绕床弄青梅。
同居长干里,两小无嫌猜,
十四为君妇,羞颜未尝开。
低头向暗壁,千唤不一回。
十五始展眉,愿同尘与灰。
常存抱柱信,岂上望夫台。
十六君远行,瞿塘滟滪堆。
五月不可触,猿声天上哀。
门前迟行迹,一一生绿苔。
苔深不能扫,落叶秋风早。
八月蝴蝶来,双飞西园草。
感此伤妾心,坐愁红颜老。
早晚下三巴,预将书报家。
相迎不道远,直至长风沙。

阅读全文 »
0%