命令行.bat乱码实践-失败
对于因设置`JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8`导致H5页面乱码以及Windows命令窗口`javac`编译出现繁体字的问题,可以采用以下解决方法:
### 解决H5页面乱码问题
在编译Java代码时,采用指定编码方式的方法,而非依赖环境变量`JAVA_TOOL_OPTIONS`。在`javac`命令后面添加`-encoding utf-8`,示例如下:
javac HelloWorld.java -encoding utf-8这样编译时就以UTF - 8形式编译,避免因环境变量设置导致的H5页面乱码问题。
将命令提示符编码永久改为UTF-8(兼容全局设置)
如果不希望删除环境变量(例如其他应用依赖此设置),则可以修改命令提示符的默认编码为UTF-8。
修改注册表设置命令提示符默认代码页为UTF-8
按
Win+R,输入regedit,打开注册表编辑器。导航到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor新建一个字符串值(如果不存在):
名称:
Autorun数值:
chcp 65001这样每次启动命令提示符都会自动执行
chcp 65001,将活动代码页设置为UTF-8。
完成上述操作后,再次打开命令提示符,输入`javac`就不会出现乱码情况了。
但是
还是乱码。
在.bat文件中设置编码
在.bat文件开头添加以下命令来设置编码为UTF - 8:
@echo off chcp 65001 > nul # 静默切换UTF-8编码 setlocal enabledelayedexpansion此命令会将命令行的代码页设置为UTF - 8,避免出现乱码。
作用说明:
chcp 65001 > nul强制将控制台编码切换为UTF-8(代码页65001)
> nul隐藏执行提示(如"Active code page: 65001")13
@echo off关闭命令回显,使输出更清晰
setlocal enabledelayedexpansion启用延迟变量扩展,避免循环/代码块中的变量解析问题
结果:部分乱码。部分不是乱码。
创建.bat文件,显示不乱码。不知道为什么上面是乱码。
@echo off chcp 65001 > nul setlocal enabledelayedexpansion echo ************************************** echo * 中文测试 - 无乱码版本 * echo ************************************** echo 当前时间:%date% %time% echo 系统路径:%PATH:~0,50%... pause