2012-01-22 52 views
0

我測試玩!在Windows和Ubuntu上。我有一個接受email參數的操作方法。加上字符在URL轉換爲Linux空間上的空間

當我傳遞一個包含加號(例如[email protected])的電子郵件地址時,它在Windows上按預期工作,而在我的Ubuntu系統上,我將abc [email protected]分配給email參數。

有沒有人遇到過這種情況?我在Play前沒有前端代理 - 在這兩種情況下,都可以直接訪問相同版本的Play(1.2.x-c40cf37,稍後於1.2.4),使用相同的application.mode = dev,幾乎相同的配置。

我無法調試linux盒子 - 它在Amazon EC2實例上,Java調試協議對我來說太慢了。如果我找不到另一種方法,我將不得不在VM中安裝一個本地unbutu並在那裏調試它。在我這樣做之前,有沒有其他有用的提示可以嘗試?

+2

我從來沒有用過Play !,但是你不需要URL編碼電子郵件地址嗎? – Bogdacutu

+3

URL上的'+'是空間的逃逸。使用'%20'。 – Oded

+0

@Bogdacutu - 但在Windows上,它運行良好,沒有任何編碼...我相信瀏覽器編碼它無論如何。 – ripper234

回答

4

這是標準行爲。

在URL上的空格可以用+表示。你需要使用%20來逃避它。

+0

這仍然不能解釋Windows和Linux之間的區別,但是在這種情況下,Windows可能不會遵循標準。我會嘗試編碼。 – ripper234

+0

@ ripper234 - 這與更多不同的瀏覽器如何操作有關。 – Oded

+0

這很奇怪 - 我在同一臺機器上使用同一瀏覽器訪問兩臺服務器。 – ripper234