我經常看到編碼出現問題。因此我寫下了這個指令集來完成所有需要的操作,以便使其工作(使用編碼)。 這個集合與Eclipse相關,但它也將引導maven設置。用Eclipse和Maven編碼的Java編碼
與編碼問題的Java文件使用斯堪的納維亞的字母時是最容易出問題的(AAO,他們對運行時實際意義)。
一個示例情況下,具有在一個java文件中的常量變量,它包含一個斯堪信,它是用於識別從輸入的數據流(至極是UTF-8)的值。
而且底層的操作系統可能是Windows和它們缺省使用CP1252。
E.g.以下代碼:
@Test
public void scandicTest() {
System.out.println("scandics: åäö");
}
當一切都正確配置(例如在eclipse),在運行此測試將產生:
scandics: åäö
但是,如果你通過Maven的運行此(來自命令行或蝕= > MVN測試),你將有:
scandics: ���
首先,編碼必須在Eclipse正確地改變並在Maven的pom.xml讀取和存儲文件以及Eclipse使用correc t保存文件/運行測試時的編碼。 然而,當Maven和生成的Java代碼來處理輸入流在java文件本身的恆定值保持甚至認爲文件讀取是正確的(包含斯堪字母)損壞(編譯&運行測試)。
系統Java仍然使用甚至其他一切都正確設置一個特定的操作系統的默認編碼。由於這個原因,你不能在項目中進行全部配置,你也必須爲OS-JVM做這些。
您是否正確設置了Maven中的屬性,並且您是否通過surefire插件運行了分叉測試?如果是,你是否正確設置了file.encoding系統屬性? – khmarbaise 2015-02-12 07:14:03
看到我的答案,我已經解決了這個問題。這是問答。 – 2015-02-12 07:40:11