最近用试用 quarkus 框架,用 log4j2 打印日志的时候,发现中文乱码,尝试过下面的修改:
- IDEA -> Setting -> Editor -> General -> Console -> Default Encoding
- IDEA -> Setting -> Editor -> File Encoding -> (Global Encoding | Project Encoding | Default encoding for properties files)
- 启动参数加:
-Dfile.encoding=utf-8
- IDEA -> Help > Edit Custom VM Options -> 添加
-Dfile.encoding=utf-8
修改这些后都没有用,最后搜索发现和 chcp
有关
chcp 是 Windows 命令行命令,用于更改命令提示符的字符编码页(Code Page)
这个值在我的机器上默认的是 936(GBK编码),将其指定为 65501 (UTF-8),chcp 65501
,就可以临时解决乱码问题。要永久解决就需要修改注册表 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
,添加一个 DWORD
类型的值,十进制 65001
,也可以将下面的代码保存成 codepage.reg 执行:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:0000fde9
记录一个打包可执行jar在log4j2控制台输出中文乱码的问题 - Nihaorz - 博客园 (cnblogs.com)