------------------------ 根本解决方法: Setting->maven->runner VMoptions:-Dfile.encoding=GB2312 或者 -Dfile.encoding=GBK ------------------------ 其他方法: 1. jdbc:mysql://localhost:3306/sheep?characterEncoding=utf-8 连接数据库取数据层面 2. idea64.exe.vmoptions(32位的是idea.exe.vmoptions)添加-Dfile.encoding=UTF-8 3. Setting->Editor->File Encodings 设置UTF-8 4. 设置windows环境变量 变量名: JAVA_TOOL_OPTIONS, 变量值:-Dfile.encoding=UTF-8 5. run-->edit configurations VM options一栏:-Dfile.encoding=UTF-8 问题: windows下,idea里,setting-->file encoding改成utf-8后,maven工程System.out.println()控制台出现中文乱码。但java工程不是乱码。 解决方法: 将jvm默认编码设置为UTF-8方法一:run-->edit configurations,在需要的类上,VM options里添加 方法二:创建系统环境变量(一劳永逸): 变量名: JAVA_TOOL_OPTIONS, 变量值:-Dfile.encoding=UTF-8 转自 https://www.cnblogs.com/LinKinSJ/p/9096921.html 原因分析:命令行导致乱码JAVA_TOOL_OPTIONS用于解决的经典问题是使用命令行导致中文乱码,通过设置环境变量JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"一般可以解决。(https://blog.csdn.net/ly199108171231/article/details/85253946) maven工程恰恰是用命令行启动。分析:应该是命令行没有输入相关参数,导致了输出乱码。 java工程和maven工程里的-Dfile.encoding=UTF-8以下是java工程执行时的命令行,红色行-Dfile.encoding=UTF-8后面跟着jdk里的包 E:\java\tts9-v2-win-x64\tts9\jdk1\bin\java.exe + + + E:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\deploy.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\access-bridge-jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\cldrdata.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\dnsns.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\jaccess.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\jfxrt.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\localedata.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\nashorn.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\sunec.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\sunjce_provider.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\sunmscapi.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\sunpkcs11.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\ext\zipfs.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\javaws.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\jce.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\jfr.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\jfxswt.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\jsse.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\management-agent.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\plugin.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\resources.jarE:\java\tts9-v2-win-x64\tts9\jdk1\jre\lib\rt.jarD:\IDEAProject\leyou\code\demo7\out\production\test-encoding-java b.Test2 以下是maven工程执行时的命令行(已加入了-Dfile.encoding=utf-8参数): 没有加参数,则红色行里没有-Dfile.encoding=UTF-8 E:\java\tts9-v2-win-x64\tts9\jdk1\bin\java.exe -Dmaven.multiModuleProjectDirectory=D:\IDEAProject\leyou\code\demo7\test-encoding -DarchetypeCatalog=internal -Dmaven.home=D:\java_tool\apache-maven--Dclassworlds.conf=D:\java_tool\apache-maven-\bin\m2.conf + + -Dfile.encoding=UTF--classpath D:\java_tool\apache-maven-\boot\plexus-classworlds-.jar org.codehaus.classworlds.Launcher -Didea.version2019-s D:\java_tool\apache-maven-\conf\settings.xml -Dmaven.repo.local=D:\heima\.m2\repository -Dexec.workingdir=D:\IDEAProject\leyou\code\demo7 -Dexec.executable=E:\java\tts9-v2-win-x64\tts9\jdk1\bin\java.exe exec:exec 检查jvm默认编码
jvm启动参数设置-Dfile.encoding=utf-8注意事项:开发工具里project设置为utf-8,同时设置-Dfile.encoding=utf-8 转自 https://blog.csdn.net/jv_csjh/article/details/78581826 -Dfile.encoding解释:
转自 https://blog.csdn.net/belalds/article/details/80811824 mac系统中,Jar Launcher.app启动jar文件时,file.encoding属性变成MacRoman转自 https://blog.csdn.net/haixia_12/article/details/42424513 未解决的问题:java工程中,file.encoding无论是gbk还是utf-8,控制台都不会中文乱码。 idea和cmd已做实验验证。 |
|