2012-03-12 74 views
3

我在我的開發環境中在OSX上運行Jetty。目前字符編碼似乎是faulti(可能是mac-roman),覆蓋了Jetty默認值。我如何強制編碼爲UTF-8?這個問題似乎只出現在OSX上,linux/windows工作正常。Jetty mac編碼爲UTF-8

我從終端運行Jetty,所以eclipse特定的解決方案沒有幫助。

回答

1

這裏沒問題,但是我們從javaWrapper啓動Jetty(並且不應該有所作爲)。

我可以看到造成影響的唯一參數是設置file.encoding系統屬性,例如-Dfile.encoding=UTF-8

編輯 (我們的Mac區域被設置爲UTF-8)

+0

我會接受這個答案,因爲它是最終解決問題的參數。認爲它應該是一個Jetty參數的錯誤是我的... – Marcus 2012-03-12 13:36:28

1

要設置默認的字符編碼碼頭,你可以設置系統屬性「org.eclipse.jetty.util.UrlEncoding.charset」來隨你喜歡。這將影響URL的查詢字符串或POST HTTP請求的內容的編碼和解碼。

此外,很長一段時間(也許在6.1.x早期時間)現在默認情況下這是utf-8,所以我不確定這是你看到的問題。

所以很明顯,jetty已經是一個多年的eclipse項目了,所以上面的系統設置不是一個特定於eclipse的設置,它只是我們在eclipse命名上的一個神器。 :)

乾杯

+0

upvote爲參數的信息值開始於「日食」 – Marcus 2012-03-12 13:38:53

+1

我認爲URL編碼是一個不同的問題比提到的海報(默認文件編碼)。 (s)他詢問JVM設置,而不是HTTP特定設置。 – Noah 2012-07-02 14:52:59

5

顯然我錯在指責碼頭這個問題。原因是maven,以及maven如何引入默認編碼java設置。

設置該ENV變量似乎來解決這個問題:

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 

Answer found from here

+0

這解決了我的編碼問題,通過cygwin在Windows上運行mvn碼頭。 – Will 2013-05-01 21:13:35