2011-09-09 92 views
11

我有一個混合編碼的源代碼樹,我得到了上面的一些源文件的警告。我成功地將這些文件的編碼設置爲ISO 8859-1,在使IDEA的緩存失效後,它們現在可以在編輯器中正確顯示。但是,當我編譯時,我仍然收到錯誤消息。Intellij IDEA:「編碼UTF-8的不可映射字符」編譯ISO-8859-1文件

生產構建使用ant,這不是一個問題,但它意味着我不能在IDE中「製造」。有沒有辦法讓IDEA正確地編譯這些錯誤,或者失敗,將錯誤降低到警告狀態?

+0

我不知道IDEA,但爲什麼你需要一個混合編碼的源代碼樹?不會將所有文件轉換爲UTF-8使生活更輕鬆? –

+0

有問題的文件與外語數據中的正則表達式匹配與已知的編碼有關。使用正在匹配的編碼編寫正則表達式更容易,也更不容易出錯。 (我是這個代碼庫的新手)。 –

+0

當字符串在內存中時,無論如何它們都是UTF-16,與文件的編碼無關(假設你編譯它們的權限)。因此,雖然我可以看到爲什麼這些文件是以這些編碼方式創建的,但現在沒有任何反對它們的說法。 (當然,你也可以嘗試修復IDEA錯誤。) –

回答

3

看起來像一個known bug

+0

我有一個單模塊項目,所以如果這個錯誤被準確報告,我想我正在尋找不同的東西。 –

+0

您可以提交單獨的問題並附上示例項目,以便我們可以對其進行調查。 – CrazyCoder

27

我解決了這個問題的IntelliJ選項面板中添加這個屬性編譯/ Java編譯器

其他命令行參數:如果您使用的是IntelliJ -encoding ISO-8859-1

1

,對我來說,最快的方式是:

File -> File encoding

,並選擇一個你想要的,在這種情況下, ISO-8859-1

1

in /.idea fold,有encodings.xml文件,可以將其更改爲<file url="file://$PROJECT_DIR$" charset="UTF-8" /> UTF-8爲ISO-8859-1。

相關問題