2012-06-24 44 views
0

我已經在PHP,我試圖轉換到JavaURL解碼沒有給予同樣的結果URL解碼PHP

在我的代碼做簡單的加密/解密方法,我從URL中的值並將它傳遞給我的解密功能

這是給在PHP正確的結果之前urldecode,但不是在java中

這裏是在PHP

urldecode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2") 

這裏我的測試樣品就是我」 m試圖在JAVA做

java.net.URLDecoder.decode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2") 

和我得到的結果是完全不同的。任何人都可以把我帶到我搞砸的地方?

感謝


+0

而那些結果是? ... –

+0

也許java解碼器可以接收指定某種格式的屬性?請檢查該類別的方法 –

+0

Lamis請發佈您獲得的2個不同結果。 – iNan

回答

1

當您只使用

解碼(String s)將

它被廢棄了,得到的字符串可能因平臺默認編碼不同而不同。相反,使用

解碼(字符串s字符串ENC)

方法指定編碼。它使用特定的編碼方案解碼應用程序/ x-www-form-urlencoded字符串。

enc可以是「UTF-8」,「ISO 8859-1」等....

+0

是的,只是想出了...解碼ISO-885901爲我工作:) – Lamis

2

考慮嘗試改爲:

java.net.URLDecoder.decode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2", "UTF-8") 
在JAVA java.net.URLDecoder.decode(String)

已被棄用。

+0

這個問題是不是用PHP,問題是與Java ...因爲我得到的結果我想在php – Lamis

+0

也許會很好地增加你從每個語言得到的結果;) –

+1

儘可能我們可以請參閱文檔:*結果字符串可能因平臺的默認編碼而異。相反,使用decode(String,String)方法來指定編碼。*(這可能與您一起發生) –