首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过编辑pom在Maven项目中进行Java文件编码

问通过编辑pom在Maven项目中进行Java文件编码
EN

Stack Overflow用户
提问于 2013-11-27 14:34:42
回答 3查看 433关注 0票数 0

我需要指定我的File应用程序在运行时创建的对象是以特定的编码格式(即UTF-8)保存的。我读了here,当我启动JVM时,我应该在运行时指定编码。

由于我正在开发一个Maven项目,我可以设置pom.xml文件来指定编码吗?如果是,怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-27 14:50:34

如果您正在通过Java代码创建文件,那么

创建一个FileOutputStream。然后,您可以将其包装在OutputStreamWriter中,这样就可以在构造函数中传递编码。

然后你就可以把你的数据写上去了。试试这个:

代码语言:javascript
复制
FileOutputStream fos = new FileOutputStream("test.out");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
Writer out = new BufferedWriter(osw);
...
out.write(ch);
...
out.close();
票数 1
EN

Stack Overflow用户

发布于 2013-11-27 15:01:32

因为您想要设置运行时编码:否,所以不能仅通过maven进行此操作,因为它只修改构建时行为。

由于需求是指定的,而且可能不太可能更改,所以我可以想到两种选择:

  1. 实例化Writer时指定正确的编码
  2. 使用System.setProperty("file.encoding","UTF-8")为应用程序指定全局编码

我建议1.因为它提供了更好的控制,不会影响在同一个VM中运行的其他代码。与硬编码编码不同,您还可以将其移动到配置文件中的某个阶段--如果使用maven生成它,您可以通过修改pom轻松地切换编码。

票数 1
EN

Stack Overflow用户

发布于 2013-11-27 14:39:26

要设置项目编码,可以在pom.xml中这样做

代码语言:javascript
复制
<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>

据我所知,当您希望为在运行时创建的文件设置编码时,在Maven配置中没有提供选项。您所讨论的链接有用UTF-8创建文件的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20245201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档