java - 在 Windows 10 上运行与在 Linux 上相同的 UTF-8 Java 文件
问题描述
我有我在 linux 操作系统中创建的 gradle 项目。它包含一些具有标准 UTF-8 编码的 java 文件。一类包含带有中欧字符的字符串。
有时我将我的第二台计算机与 Windows 10 一起使用。当我想通过 CMD 在 win10 上正确运行这个 gradle 项目时,我必须使用 ISO-8859-2 编码重新保存 java 文件并修复字符串。这很烦人,我没有找到在两个系统上运行相同的方法。
我试过:
- 环境变量中的 JAVA_TOOL_OPTIONS >> -Dfile.encoding=UTF-8
- CHCP 65001(在 CMD 中启动之前)
- Windows 语言环境设置中的 UTF-8(beta W10 功能)
同样糟糕的结果。
有什么办法吗?
解决方案
一种替代方法是将任何非标准字符编写为 Unicode 转义序列,例如\u01D1
. 这将使文件在任何地方都可以工作,而无需更改本地环境。您也不必担心在错误的环境中编辑文件并使用错误的字符集保存它。但是,当然,文件中的外来字符不会那么容易辨认。
如果您的 Gradle 文件包含外来字符,请设置环境变量GRADLE_OPTS
:
GRADLE_OPTS="-Dfile.encoding=UTF-8"
如果您尝试使用 Gradle编译Java 源文件,您可能需要在文件中配置compileJava
任务的编码build.gradle
:
apply plugin: 'java'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
推荐阅读
- serverless-framework - 从 serverless.yaml 初始化一个数组并从处理程序中调用它
- rest - 如何在 esri ArcGIS REST API 中查询经纬度而不是空间坐标?
- javascript - 使用 AJAX 捕获 Node JS 路由的响应并将其显示在 HTML 上
- python - 从正在检查列表的字符串 findall 输出中删除方括号
- node.js - 如果在执行 nvm use 命令时出错,如何设置系统路径变量以在 Windows 上使用 nvm
- javascript - 如何使用 react 和 typescript 基于 prop 渲染图标?
- javascript - Discord.JS - 无法向该用户发送消息
- selenium - FindElement(By.Id) 在 For 循环中不起作用
- python - 在 python 3 中安装 lalsuite 包时遇到问题
- javascript - 如何从字符串中拆分值并在javascript中推入数组