簡體   English   中英

通過編輯pom在Maven項目中編碼Java文件

[英]Java file encoding in a Maven project by editing pom

我需要指定我的Java應用程序在運行時創建的File對象以特定的編碼格式(即UTF-8)保存。 在這里讀到,我應該在啟動JVM時在運行時指定編碼。

由於我正在開發Maven項目,我可以設置pom.xml文件來指定編碼嗎? 如果有,怎么樣?

如果您正在通過Java代碼創建文件

創建FileOutputStream 然后,您可以將它包裝在OutputStreamWriter ,它允許您在構造函數中傳遞編碼。

然后你可以將數據寫入。 嘗試這個:

FileOutputStream fos = new FileOutputStream("test.out");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
Writer out = new BufferedWriter(osw);
...
out.write(ch);
...
out.close();

由於您要設置運行時編碼:否,因此只能通過maven來執行此操作,因為它只會修改構建時行為。

由於規定了要求並且可能不太可能變化,我可以考慮兩個選項:

  1. 在實例化Writer時指定正確的編碼

  2. 使用System.setProperty("file.encoding","UTF-8")為應用程序指定全局編碼

我建議1.因為它可以為您提供更好的控制,並且不會影響在同一個VM中運行的其他代碼。 您可以將其轉換為配置文件中的某些元素,而不是對編碼進行硬編碼 - 如果您使用maven生成它,則可以通過修改pom輕松切換編碼。

要設置項目編碼,您可以在pom.xml中以這種方式執行此操作

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>

如果要根據我的知識設置在運行時創建的文件的編碼,則無法在Maven配置中提供。 您遇到的鏈接有使用UTF-8創建文件的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM